使用动态规划的条件:
- 优化子结构:问题的优化解包含子问题的优化解
- 重叠子问题:在问题求解的过程中,很多子问题的解将被多次使用
最优子结构的证明通常是用反证法(“剪切-粘贴”法)
步骤:
- 分析问题,判断是否具有:最优子结构、重叠子问题
- 给出递归公式(这个递归公式应该指明了一个数组自下而上的计算方法)
- 依据递归公式写出动态规划的伪代码
钢条切割问题:长钢条最优切割方式可以由两个短钢条的最优切割方式合出

矩阵链乘问题:



最长公共子序列
最优二叉搜索树
编号动态规划
划分动态规划 1 i j n
数轴动态规划 01背包
前缀