目录
一、基本思想
将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。
二、与分治法的异同
同:基本思想一致(如上)
异:适用动规求解的问题,经分解得到的子问题往往不是相互独立的。而适用分治法的往往相互独立。
三、动态规划算法的基本要素
1、最优子结构性质:问题的最优解包含了其子问题的最优解。
2、重叠子问题性质:若自顶向下求解问题时则每次产生的子问题不总是新问题,有些子问题被反复计算多次。
四、算法步骤
1、找出最优解的性质,并刻画其结构特征
2、递归地定义最优值
3、以自底向上的方式计算最优值
4、根据计算最优值时得到的信息构造最优解
五、经典例题
(1)最大字段和
以及其拓展:最大子矩阵和 、最大m子段和
(2)最长公共子序列
(3)矩阵连乘
(4)背包问题
(5)硬币问题
六、碰到的例题
(1)Count number of binary strings without consecutive 1’s
(2)护林员盖房子
(3)逆LCS