最近写了不少区间dp的题,简单记录一点小小的经验吧
首先区间dp的显著特点就是有进行区间合并的操作,每个区间的最优解可由子区间最优解合并得出,且合并点不定,需要枚举
dp≠瞎搞,每种不同类型的dp也有大致的模板
初始化f[i][i]的情况
for (k=2;k<=n;k++)//枚举区间长度
{
for (int i=1;i<=n+k-1;i++)//枚举区间左端点
{
int j=i+k-1;//区间右端点
for (int p=i;p<=j;p++)//枚举合并点
{
将f[i][j]由左右两个子区间合并(状态转移方程)
}
}
}
根据具体的题目还会有不同具体的操作,需要依题目讨论