动态规划算法
1.计数
- 有多少种方式走到右下角
- 有多少种方法选出k个数使得和是Sum
- +++
2.求最大最小值
- 从左上角走到右下角路径的最大数字和
- 最长上升子序列长度
- min/max
3.求存在性
- 取石子游戏,先手是否必胜
- 能不能选出k个数使得和是Sum
- or/and
二、动态规划组成部分
1.确定状态
简单的说,解动态规划的时候需要开一个数组,数组的每个元素f[i]或者f[i][j]代表什么。
确定状态需要两个意识:
- 最后一步(最优策略的最后一步)
- 子问题
2.转移方程
f[X]=min/max{}
3.初始条件和边界条件
初始条件:用转移方程算不出来,需要手工定义。
边界条件:不能让数组越界(上界和下界)。
4.计算顺序
大多数情况都是从小到大计算
二维的话就是从上到下,
确定计算顺序的原则:
当我们计算等式左边的f[X]

浙公网安备 33010602011771号