引例:樓梯有n個台階,上樓可以一步上1階,也可以一步2階,一共有多少種上樓的方法?
解:
f(1)=1,
f(2)=2,
f(n)=f(n-1)+f(n-2).
1.記憶化陣列——避免重複計算;
2.遞迴定義——>遞迴公式
思路:先走一步,看剩下的。
遞推公式: 初值:遞迴出口;
遞推公式:遞迴體。
1.基礎動態規劃
例題1:1730 數字三角形問題 可以使用滾動陣列
例題2:1299最長上公升子串行
例題3:2080最長公共子串行問題
例題4:(注意大數模擬)最佳加法表示式
例題5:2755:神奇的口袋 注意初值的設定
例題6:0-1揹包問題(poj3624) 可以使用滾動陣列
例題7:滑雪(百練1088)
例題8:poj1390 方盒遊戲
例題9:poj2373 灌溉草場
2.狀態壓縮動態規劃:
例題10:百練4124 海賊王之偉大航路
例題11:百練4149 課程大作業
例題12:poj1185 炮兵陣地
動態規劃入門
1 用 dp 做的題大多數返回值是int boolean,求max min,不能打亂原來輸入順序。2 動態規劃有兩個重要定義,乙個叫 optimal substructure 另乙個叫 overlap subproblem 各種排序 tree 類問題中,都會用到 divide conquer 的思想...
動態規劃入門
大家可以看看這篇文章dp,哪個更容易理解就看哪個!一 動態規劃的定義 動態規劃程式設計是一種針對於解決最優化問題的一種途徑 一種方法,而不是一種特殊演算法,也就是說它沒有固定的模板。在動態規劃中,每走一步都要看看能不能最優,而且動態規劃最擅長的就是多階段問題!二 動態規劃的基本概和基本模型構成 1....
動態規劃入門
學動態規劃自然要從數字三角形開始起步,那麼我們就先從數字三角形開始。數字三角形題目 有乙個由非負整數組成的三角形,第一行只有乙個數,除了最下行之外的每個數的左下方和右下方各有乙個數,如下圖所示 3 24 10 1 4 3 2 20 從第一行的數開始,每次可以往下或往右下走一格,直到走到最下行,把沿途...