1. 动态规划的内涵
动态规划中当前的状态往往依赖于前一阶段的状态和前一阶段的决策结果。
例如我们知道了第i个阶段的状态Si以及决策Ui,那么第i+1阶段的状态Si+1也就确定了。
所以解决动态规划问题的关键就是确定状态转移方程,一旦状态转移方程确定了,
那么我们就可以根据方程式进行编码。
2. 状态转移方程----动态规划的内核
3. 经典使用动态规划的模型总结
... waiting
动态规划编程思绪:
1. base case: 最基础的情况;
2. 最一般的情况: (1)注意,动态规划其中一种是,利用子程序,自下而上解决问题。
例如:“删除并获得点数” 问题
arr = [9,2,3,7,3,7,7];
unordered_map<int, int>map1;
变成:数据--个数 的映射关系。
3. 主要是一个一个计算的过程,先计算dp[0], 在计算dp[1],再计算dp[2],计算dp[3]
一般计算到前3个,就可以找到规律了。
4. 注意是从数组开头开始计算,一开始看成子数组
5. 如何确定谁是i, 谁是dp[i]呢?
1) 一般跟“最”相关的表达,与dp[i]相关。