使用動態規劃的條件:
- 優化子結構:問題的優化解包含子問題的優化解
- 重疊子問題:在問題求解的過程中,很多子問題的解將被多次使用
最優子結構的證明通常是用反證法(“剪切-粘貼”法)
步驟:
- 分析問題,判斷是否具有:最優子結構、重疊子問題
- 給出遞歸公式(這個遞歸公式應該指明瞭一個數組自下而上的計算方法)
- 依據遞歸公式寫出動態規劃的僞代碼
鋼條切割問題:長鋼條最優切割方式可以由兩個短鋼條的最優切割方式合出
矩陣鏈乘問題:
最長公共子序列
最優二叉搜索樹
編號動態規劃
劃分動態規劃 1 i j n
數軸動態規劃 01揹包
前綴