区间DP模板和四边形优化
Posted dpsama
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区间DP模板和四边形优化相关的知识,希望对你有一定的参考价值。
for(int len = 1;len<=n;len++){//枚举长度
for(int j = 1;j+len<=n+1;j++){//枚举起点,ends<=n
int ends = j+len - 1;
for(int i = j;i<ends;i++){//枚举分割点,更新小区间最优解
dp[j][ends] = min(dp[j][ends],dp[j][i]+dp[i+1][ends]+something);
}
}
}
区间DP模板
模板题:poj1651,hdu4632
区间dp,就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的最优解,进而得出整个大区间上最优解的dp算法。
具体操作
枚举区间长度len为每次分割成的小区间长度(由短到长不断合并),
中层枚举该长度下可以的起点(终点即为起点+len)
内层在这个起点终点之间枚举分割点,求解这段小区间在某个分割点下的最优解。
四边形不等式优化的应用
状态转移方程骨架:
[ m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j) \(i≤k≤j) ]
优化目标:O(N^3)到O(N^2)
判定性质:
1:区间包含的单调性:如果对于i≤i‘<j≤j‘,有w(i‘,j)≤w(i,j‘)
2:四边形不等式:如果对于i≤i‘<j≤j‘,有w(i,j)+w(i‘,j‘)≤w(i‘,j)+w(i,j‘)
定理一:如果上述的w函数同时满足区间包含单调性和四边形不等式性质,那么函数m也满足四边形不等式性质。
定理二:假如m(i,j)满足四边形不等式,那么s(i,j)单调,s(i,j)≤s(i,j+1)≤s(i+1,j+1)。
s(i,j)表示m(i,j)取得最优值时对应的下标(即i≤k≤j时,k处的w值最大,则s(i,j)=k)
优化后的状态转移方程骨架
[ m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j)\(s(i,j-1)≤k≤s(i+1,j)) ]
以上是关于区间DP模板和四边形优化的主要内容,如果未能解决你的问题,请参考以下文章
hdu3516 Tree Construction (区间dp+四边形优化)
[51nod 1022] 石子归并v2 [dp+四边形不等式优化]