算法专题:动态规划
基本原理
动态规划是最优化原理中的一种重要的方法。
动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间。
动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决。
总的来说,动态规划的优势在于:
- 重叠子问题
- 最优子结构
- 记忆化
步骤
- 最优子结构性质。如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。最优子结构性质为动态规划算法解决问题提供了重要线索。
- 子问题重叠性质。子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。动态 规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一个表格中,当再次需要计算已经计算过的子问题时,只是在表 格中简单地查看一下结果,从而获得较高的效率。
HDU
- http://acm.hdu.edu.cn/showproblem.php?pid=1466 hdu1466 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=1003 hdu1003 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=1087 hdu1087 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=1159 hdu1159 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=1176 hdu1176 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=1058 hdu1058 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=1069 hdu1069 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=2059 hdu2059 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=2084 hdu2084 参考答案
- http://acm.hdu.edu.cn/showproblem.php?pid=1024 hdu1024 参考答案
动态规划典型例题
参考资料
- http://en.wikipedia.org/wiki/Dynamic_programming
- 动态规划.ppt
动态规划练习
Vol I
- 1013 by javaman
- 1022 by javaman
- 1025 by javaman
- 1027 by javaman
- 1074 by javaman
- 1076 by javaman
- 1093 by javaman
- 1094 by javaman
Vol II
- 1100 by javaman
- 1107 by javaman
- 1108 by javaman
- 1136 by Vegetable Bird
- 1149 by javaman
- 1183 by javaman
- 1196 by javaman
Vol III
- 1200 by javaman
- 1206 by javaman
- 1227 by javaman
- 1234 by javaman
- 1245 by javaman
- 1249 by javaman
- 1250 by javaman
- 1276 by javaman
Vol IV
Vol V
- 1424 by SgHao
- 1425 by javaman
- 1428 by javaman
- 1446 by javaman
- 1448 by SgHao
- 1449 by javaman
- 1454 by javaman
- 1459 by javaman
- 1462 by javaman
- 1463 by javaman
- 1470 by javaman
- 1474 by caopeng
- 1475 by javaman
- 1483 by javaman
- 1484 by javaman
- 1490 by Vegetable Bird
- 1499 by javaman
Vol VI
- 1503 by pandahyx
- 1512 by javaman
- 1515 by javaman
- 1520 by javaman
- 1524 by javaman
- 1539 by javaman
- 1540 by caopeng
- 1554 by SgHao
- 1563 by javaman
- 1567 by caopeng
- 1579 by javaman
Vol VII
- 1602 by javaman
- 1607 by javaman
- 1611 by javaman
- 1629 by javaman
- 1638 by javaman
- 1642 by javaman
- 1651 by javaman
- 1666 by Vegetable Bird
- 1695 by caopeng
Vol VIII
- 1713 by javaman
- 1717 by javaman
- 1731 by javaman
- 1733 by javaman
- 1736 by caopeng
- 1738 by javaman
- 1743 by javaman
- 1756 by javaman
- 1757 by javaman
- 1787 by javaman
- 1792 by javaman
Vol IX
- 1800 by SgHao
- 1819 by javaman
- 1853 by javaman
- 1864 by caopeng
- 1877 by javaman
- 1880 by javaman
- 1893 by javaman
Vol X 1913 by javaman
- 1918 by javaman
- 1925 by javaman
- 1953 by javaman
- 1985 by javaman
- 1986 by javaman
- 1988 by javaman
- 1991 by javaman
- 1995 by SgHao
Vol XI
- 2002 by javaman
- 2014 by javaman
- 2025 by javaman
- 2042 by javaman
- 2058 by javaman
- 2059 by javaman
- 2067 by javaman
- 2068 by javaman
- 2069 by javaman
- 2081 by javaman
- 2096 by javaman
Vol XII
- 2127 by javaman
- 2136 by javaman
- 2142 by SgHao
- 2144 by javaman
- 2156 by javaman
- 2180 by javaman
- 2189 by javaman
Vol XIII
- 2202 by javaman
- 2206 by javaman
- 2213 by caopeng
- 2224 by javaman
- 2227 by Vegetable Bird
- 2242 by javaman
- 2244 by javaman
- 2254 by javaman
- 2255 by Vegetable Bird
- 2264 by javaman
- 2271 by javaman
- 2278 by javaman
- 2280 by javaman
- 2281 by javaman
- 2283 by javaman
- 2284 by javaman
- 2297 by javaman
Vol XIV
- 2319 by javaman
- 2337 by javaman
- 2338 by javaman
- 2341 by caopeng
- 2349 by Vegetable Bird
- 2353 by Vegetable Bird
- 2354 by javaman
- 2366 by javaman
- 2372 by pandahyx
- 2374 by Vegetable Bird
- 2397 by javaman
Vol XV
- 2401 by javaman
- 2402 by javaman
- 2414 by Vegetable Bird
- 2422 by jueyey
- 2424 by javaman
- 2432 by javaman
- 2498 by Vegetable Bird
Vol XVI 2501 by Vegetable Bird
- 2521 by Vegetable Bird
- 2522 by Vegetable Bird
- 2527 by Vegetable Bird
- 2536 by Vegetable Bird
- 2547 by Vegetable Bird
- 2561 by caopeng
- 2563 by Vegetable Bird
- 2565 by caopeng
- 2568 by Vegetable Bird
- 2581 by Vegetable Bird
- 2591 by caopeng
- 2598 by caopeng
Vol XVII
- 2604 by Vegetable Bird
- 2621 by Vegetable Bird
- 2624 by Vegetable Bird
- 2625 by Vegetable Bird
- 2626 by Vegetable Bird
- 2641 by caopeng
- 2642 by caopeng
- 2667 by caopeng
- 2673 by caopeng
- 2683 by Vegetable Bird
- 2685 by Vegetable Bird
- 2692 by caopeng
Vol XVIII