【动态规划1】动态规划的引入

对应进阶篇第 13 章。

我们接触过很多“求最佳方案”的题目了。遇到这种问题,可以考虑使用贪心算法在每步决策时使用单步最佳方案,或者使用枚举(搜索)算法枚举所有可能的决策。使用贪心算法的问题是“目光短浅”,不一定可以站在全局的角度来统筹决策,可能会出现结果并不是全局最佳的;而使用枚举搜索算法,虽然可以遍历所有的可能,但如果数据量稍大,就可能超时。这个时候可以考虑使用动态规划解决这些问题。

动态规划的核心是“状态缓存”,将一个状态的统计结果传递到另外一个状态,这有一点类似递推算法。动态规划是算法竞赛的常客,非常考验选手问题分析和代码实现能力,因此值得我们在本书中专门开辟一个部分来介绍。


  1. P2842 - 纸币问题 1
  2. P1216 - [IOI 1994 / USACO1.5] Number Triangles
  3. P2840 - 纸币问题 2
  4. P2834 - 纸币问题 3
  5. P1048 - [NOIP 2005 普及组] 采药
  6. P2196 - [NOIP 1996 提高组] 挖地雷
  7. P1434 - [SHOI2002] 滑雪
  8. P4017 - 最大食物链计数
  9. P1115 - 最大子段和
  10. P1802 - 5 倍经验日
  11. P1002 - [NOIP 2002 普及组] 过河卒
  12. P1049 - [NOIP 2001 普及组] 装箱问题
  13. P1616 - 疯狂的采药
  14. P1164 - 小 A 点菜
  15. P1077 - [NOIP 2012 普及组] 摆花
  16. P3842 - [TJOI2007] 线段
  17. P1064 - [NOIP 2006 提高组] 金明的预算方案
  18. P2392 - kkksc03考前临时抱佛脚