听了一波je的DP,蒟蒻表示蒟蒻还是蒟蒻,根本木有思路,当lao刘讲了之后,才豁然贯通,有了基本的思路和对DP的构架的认识,水一篇博客灌灌水;;;;;;
DP全称动态规划,是根据题目把解题的过程划分成若干个相关的阶段的解题方法。每一个阶段都有其不可确定的因素,比如要是否要取这个阶段;在这个阶段需要几个apple;这个阶段能获得的价值是多少……就是这些不确定的因素——即每个阶段的状态——使我们无从下手。这时候,就需要从每个阶段之间的联系下手—前面的阶段的状态对后一个阶段的状态是否会有影响,这个影响是否可以确定,怎么确定,怎么选择前面的状态才能使后面的阶段的状态更符合题意—这从一个阶段的状态推出对后续阶段的状态的影响的过程即是状态转移。
DP关键点在于抓住题目给出的信息,哪些量是有固定的顺序的,是线性变化的,根据这些信息划分阶段,进而确定每一个阶段的状态有什么,理清前后阶段的映射关系,阶段之间的关系是否满足最优子结构(补),建立与之相对应的关系链表,推出问题的最优解。
补:
最优子结构,最优化原理:前面阶段的最优解满足后续阶段存在最优解,构成整体最优解。