分类:
动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。
举例:
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。