从集合角度来分析DP问题(闫式DP分析法)
1、化零为整、化整为零
最值、个数(本质是问,每一个方案的某种属性,有可能是问我们所有方案的最大值、或者个数)如果直接枚举所有方案一般都会超时,所以就会用到化零为整的思想:
1、就是发掘所有方案之间的共同关系,然后把具有共同关系的方案放到一个集合里面去,
2、求一下每个集合的具体的值:集合划分,就是把一个集合划分为若干个子集然后分别求解,也就是化整为零
常见DP模型:
1、01背包(组合模型)
2、路线模型(按照规则走)
3、线性模型(最长子序列问题)
4、以上三个可以任意组合成一道题,难度会变大
DP的边界问题一般都是递归的出口。
重要的思想:
对称思想。
一些套路:
如果要用到i - 1 , j - 1 的时候,下标一般都是从1开始比较合适,没涉及到的就从0开始