计算机学习周志七(8.3-8.12)
1.python学习基础语法学习元组案例set案例dictdict默认判断key是否存在 不会去匹配value案例仿造这个做一个学生管理系统函数函数文档说明函数的嵌套调用函数案例变量作用域传参方式不定长参数args打包成元组 kwargs自动打包成字典传入参数类型也可以是函数匿名函数lambda2.算法刷题开始刷洛谷的题 从数据结构题单开始嵌套哈希 哈希表里再嵌套一个哈希表栈的用法 .是用来分隔数字的用队列 不断进出双向链表的插入删除知识数组模拟链表插入主函数多设一个0将0插入1的左边 方便后续遍历 因为1有可能被删除0和1形成双向链表后 最后不管怎么插入往右遍历都会回到0P1540机器翻译map加队列P1002过河卒纯DFS做法 超时两个案例正解 DP做法 递推 每个位置都可以由另外两个位置得到可列出状态转移方程dp[i][j]dp[i-1][j]dp[i][j-1] 但题目要看情况、P1044栈这道题就是按照1-n的顺序依次进栈 但是什么时间出栈出几次都可以 最后看有多少种不同的出栈序列1.卡特兰数解法 栈的公式用组合数学不方便 所以用卡特兰数递推式递推式如下相当于是以1为分界点 枚举在它弹出之前处理了多少数字 然后1弹出后又处理了多少数字拿1当分界是因为它一定是第一个进栈的2.DP解法dp[i][j]存储队列剩余i个 栈剩余j个的操作方案数有进栈出栈两种状态选择i!0j!0时 即可进栈又可出栈P1928 外星密码用递归 题目主要看[和] 如果遇到[那后面一定跟一个数字后续就可以进入递归嵌套 遇到]就判断嵌套结束一定要把key写在函数内部 如果写在外部每次递归都会干扰 写在内部外层的key和内层的key不会干扰 每次进入内层后key就可以加上需要重复输出的字符串 遇到]就能得到要重复输出的key原理就是dp[i]dp[i-1]dp[i-2] 但是数据较大要高精度先来发Python 虽然过不了C写法正解高精加P1164背包DP 恰好花费m元 dp[i][j]存储前i道菜品恰好花费j元的情况数然后再分选与不选