前言
众所周知,DP就是动态规划,也称毒品 ,所以,学习DP需谨慎,一旦上瘾难除根。
动态规划的步骤
1.划分阶段。(注意事项:划分后的阶段是有序或可排序的)
2.确定状态和状态变量。(注意事项:最优子结构+无后效性)
3.确定决策和状态转移方程。(This is the most important.)(注意事项:更多的应该考虑问题由哪些已解决子问题构成,而非只考虑本问题对将来哪些问题有贡献)
4.确定边界条件。
动态规划的实现
类型
1.最优化问题。
2.方案数问题。
3.可行性问题。
方法
1.递推(适用情景:阶段划分很明显)
2.记忆化搜索
优化
滚动数组(但是我不会,真的不会 )
例题1 数字三角形
链接:数字三角形
记忆化搜索
首先是存储问题,可以把三角形用数组(a[i][j])存下来,然后遍历。为了避免重复,可以做一下剪枝工作