【笔记】 线性DP
DP是一种寻找最优解的算法。DP之所以效率高,是因为DP的算法中会记录重复状态,对于同一状态值进行一次求解。
线性DP是DP中属于偏简单的一类。线性DP求解的关键则在于对第一个阶段或最后一个阶段进行分类讨论。
线性DP的解题方法可以分为5个步骤:
- 找出问题的阶段性,即问题分解的方法。
- 定义状态:状态的定义不能过大或过小。
- 分析状态转移方程:根据定义的状态分析如何推导出现在状态。
- 定义初值
- 确定代码框架:“人人为我”或“我为人人”。“人人为我”即通过过去状态改变现在状态;“我为人人”即通过现在状态改变未来状态。