分類:
動態規劃一般可分爲線性動規,區域動規,樹形動規,揹包動規四類。
舉例:
1.線性動規:攔截導彈,合唱隊形,挖地雷,建學校,劍客決鬥等;
2.區域動規:石子合併, 加分二叉樹,統計單詞個數,炮兵佈陣等;
3.樹形動規:貪吃的九頭龍,二分查找樹,聚會的歡樂,數字三角形等;
4.揹包問題:01揹包問題,完全揹包問題,分組揹包問題,二維揹包,裝箱問題,擠牛奶( 同濟ACM第1132題)等;
應用實例:
最短路徑問題 , 項目管理,網絡流優化等;
模型:
根據上例分析和動態規劃的基本概念,可以得到動態規劃的基本模型如下:
(1)確定問題的決策對象。 (2)對決策過程劃分階段。 (3)對各階段確定 狀態變量。 (4)根據狀態變量確定費用 函數和目標函數。 (5)建立各階段狀態變量的轉移過程,確定狀態轉移方程。
狀態轉移方程的一般形式:
一般形式: U:狀態; X:策略
順推:f[Uk]=opt{f[Uk-1]+L[Uk-1,Xk-1]} 其中,
L[Uk-1,Xk-1]: 狀態Uk-1通過策略Xk-1到達狀態Uk 的費用
初始f[U1];結果:f[Un]
倒推:f[Uk]=opt{f[Uk+1]+L[Uk,Xk]}
L[Uk,Xk]: 狀態Uk通過策略Xk到達狀態Uk+1 的費用
初始f[Un];結果:f(U1)
推薦例題:
POJ動態規劃題目列表:
容易:
1018,1050,1083,1088,1125,1143,1157,1163,1178,1179,1189,1191,1208,1276,1322,
1414,1456,1458,1609,1644,1664,1690,1699,1740,1742,1887,1926,1936,1952,1953,
1958,1959,1962,1975,1989,2018,2029,2039,2063,2081,2082,2181,2184,2192,2231
,2279,2329,2336,2346,2353,2355,2356,2385,2392,2424。
不易:
1019,1037,1080,1112,1141,1170,1192,1239,1655,1695,1707,1733(區間減法加並查集),
1737,1837,1850,1920(加強版漢羅塔),1934(全部最長公共子序列),
1964(最大矩形面積,O(n*m)算法),2138,2151,2161,2178。
推薦:
1015,1635,1636,1671,1682,1692,1704,1717,1722,1726,1732,1770,1821,
1853,1949,2019,2127,2176,2228,2287,2342,2374,2378,2384,2411。