区间dp的基本概念
区间dp
问题引入:给定长为n的序列a[i],每次可以将连续一段回文序列给消去,求最少要操作几次能把这段序列给
完全消除.
分析:1.对于一段区间i--j,我们设其要完全消去的最少次数为dp[i][j],则:
dp[i][j]=min(dp[i][k]+dp[k+1][j])(i<=k<=j)
2.若a[i]==a[j]还可得到递推式子:dp[i][j]=dp[i+1][j-1]
引入:类似问题这种以区间长度为阶段的这种dp,称为区间dp
区间dp的做法也较为固定,即枚举区间长度,再枚举左端点,之后再枚举区间的端点进行不断转移
概念:区间dp是对线性dp的拓展,在分阶段划分问题时,与阶段中元素出现的顺序,和前一阶段哪些元素合并
有很大的关系
问题特点:1.合并:可将2--多个部分进行整合 2.能将问题分解为两两合并的形式
3.求解:对整个问题设最优解,枚举合并点,将问题分解成为左右两个部分,
最后将左右两个部分的最优值进行合并得到原问题的最优值
总结:
1.基本特征:可以转为两两合并的形式
2.解决方法:对整个问题设最优值,枚举合并点,将问题分解为左右两个部分,再将左右两部分最优值合并
得到问题的原值
设i到j的最优值,枚举剖分(合并)点,将(i,j)分成左右两区间,分别求左右两边最优值
3.状态转移的一般方程形式:
f[i][j]=max(f[i][k]+f[k+1][j]+决策),k为划分点