动态规划–基本思路理念
动态规划的解题思路是:
首先将原问题分解成一个个合理的子问题。
怎样算合理呢?
要求子问题的最优值可以由更小规模的子问题的最优值推导出来。
之后就有了DP状态和DP转移方程的概念
1.DP状态(要求:最优子结构、无后效性)即子问题的最优值 f[i]
(1)最优子结构是指:原问题取到最优解时其子问题也取到了最优解。每一个子问题的最优值,都是由其更小规模的子问题的最优值推导而来。
(2)无后效性:原问题的最优值,只与子问题的最优值有关(就那个数值),与子问题最优值如何计算得来的无关,也就是说,子问题只能有一因素影响原问题的最优值,就是它的最优值的那个数值。不许再有其他因素产生影响了。否则就是有后效性。
2.DP状态转移方程
细心推导出,f[i]由f[i-1]能够推导出来的所有情况。
即采用“分类讨论”的思想枚举所有小状态向小状态转移的可能性。
其实动态规划就是一种枚举,只不过动态规划的问题比较复杂,需要一步一步地去解决问题,每一步都要进行几乎相同的枚举过程。(原问题和子问题的解题方法是一样)
之后整理一下动态规划问题都有哪些类别。