区间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模板和四边形优化的主要内容,如果未能解决你的问题,请参考以下文章

HDU 3506 (环形石子合并)区间dp+四边形优化

hdu3516 Tree Construction (区间dp+四边形优化)

[51nod 1022] 石子归并v2 [dp+四边形不等式优化]

蓝桥杯:合并石子(区间DP+平行四边形优化)

51Nod 1022 石子归并 V2(区间DP+四边形优化)

hdu 3506 Monkey Party 区间dp + 四边形不等式优化