Skip to content

Latest commit

 

History

History
38 lines (32 loc) · 1.11 KB

File metadata and controls

38 lines (32 loc) · 1.11 KB

#Dynamic Programming

###State 状态定义 储存小规模问题的结果 ###Function 初始化,终点先有值 状态只加的联系,怎么通过小的状态来算大的状态 ###Initialize 循环递推求解 最极限的小状态是什么 ###Answer 求结果:起点 最大的那个状态是什么

###一般什么情况下可能是动态规划

  • 求Maximum/Minimum
  • Yes/No
  • Count

###一般什么情况下不是动态规划

  • 求所有具体的方案而不是方案数
  • 输入数据是一个集合而不是序列

###常见DP ####Matrix DP

  • state: f[x][y] 表示我从起点走到坐标x,y......
  • function: 研究走到x,y这个点之前的一步
  • intialize: 起点
  • answer: 终点

####Sequence Dp

  • state: f[i]表示“前i”个位置/数字/字母,(以第i个为)...
  • function: f[i] = f[j] ... j 是i之前的一个位置
  • intialize: f[0]..
  • answer: f[n-1]..

####Two Sequences Dp

  • state: f[i][j]代表了第一个sequence的前i个数字 /字符 配上第二个sequence的前j个...
  • function: f[i][j] = 研究第i个和第j个的匹配关系
  • intialize: f[i][0] 和 f[0][i]
  • answer: f[s1.length()][s2.length()]