四边形不等式与决策单调

目录

  • 四边形不等式与决策单调

    • 四边形不等式
    • 一维线性DP的优化
    • 二维区间递推优化

四边形不等式与决策单调

四边形不等式

定义

存在二元函数\(w(x,y)\) ,其定义域为\(I\),

若对于任意\(a,b,c,d\in I且a≤b≤c≤d\),\(w(a,d)+w(b,c)≥w(a,c)+w(b,d)\)恒成立

则称\(w\)满足四边形不等式。

判定定理

若对于任意\(a,b\in I且a<b\),\(w(a,b+1)+w(a+1,b)≥w(a,b)+w(a+1,b+1)\)恒成立

则w满足四边形不等式。

可以感性理解一下吧:\(a<b\iff a<a+1≤b<b+1\),只有等号问题并不影响。

一维线性DP的优化

转移模型

\[
f[i]=\min_{0≤j<i}\{f[j]+w(j,i)\},w满足四边形不等式
\]

证明:

设k,k′为\(f[i]\)的决策点并满足条件\(0≤k′<k<i<i′\)′

不难得知

\(f[i]=f[k]+w(k,i)≤f[k′]+w(k′,i)\)

由四边形不等式得知

\(w(k′,i′)+w(k,i)≥w(k′,i)+w(k,i′)\)

两式相加有

\(f[k]+w(k,i′)≤f[k′]+w(k′,i′)\)

于是易知决策点k比k′更优,故得证。

实现

当前转移\(f[i]\),单调队列维护三元组\((l,r,p)\),表示l~r的最优决策点目前为p。

  1. 掐头,若\(r=i-1\),弹出,否则\(l=i\)
  2. 取队首计算
  3. 去尾,

    如果决策i在l处都比p优秀,则直接弹出p。

    如果决策i在r处都不如p优秀,则直接插入p。

    否则二分查找l~r中第一个可以让决策点i更优秀的位置

    更改队尾r,把新的三元组代表i的决策加入队列(注意有可能不能加入)

    ?

可以实现\(O(n^2)\to O(nlog_n)\) 。

二维区间递推优化

转移模型

\[
f[l][r]=\min_{l≤k<r}\{f[l][k]+f[k+1][r]+w[l][r]\}\f[i][j]=min_{0≤k<i}\{f[i-1][k]+w(k+1,j)\}\……
\]

定理:

没有证明。。

一:若对于上式中的w有

? ①w满足四边形不等式

? ②对于任意的\(a,b,c,d\in I且a≤b≤c≤d\) ,w满足\(w(a,d)≥w(b,c)\)

? 则f满足四边形不等式。

二:若f满足四边形不等式,则:

? 对于任意决策\(i<j\),都有下列二者之一:
\[
p[i,j-1]≤p[i,j]≤p[i+1,j]\ (转移中i倒序枚举,j正序枚举)\p[i-1,j]≤p[i,j]≤p[i,j+1j]\ (转移中i正序枚举,j倒序枚举)\p为各个状态的最优决策
\]

实现

一般而言,都是直接把第三重循环的边界依情况改成上面的二式之一即可。

可以实现\(O(n^3)\to O(n^2)\) 。

对于此类优化,一般先大胆猜想,然后打表验证!!

原文地址:https://www.cnblogs.com/Bhllx/p/11006308.html

时间: 2024-11-04 05:33:55

四边形不等式与决策单调的相关文章

codeforces 321E Ciel and Gondolas 四边形不等式

题目大意:给定n个人,需要分k次过河,两个人i,j如果同乘一条船就会产生ai,j的代价,求最终代价的最小值 这个玩应显然满足四边形不等式(虽然我并不知道这个不等式是啥 然后就是决策单调(虽然我并不知道为何满足四边形不等式一定决策单调 然后就能分治做辣... 定义Solve(l,r,optl,optr)表示当前在处理区间[l,r],最优决策区间为[optl,optr] 然后我们用区间[optl,min(optr,mid?1)]的f值来更新f[mid],并记录最优决策点pos 那么[l,mid?1]

四边形不等式优化DP——石子合并问题 学习笔记

好方啊马上就要区域赛了连DP都不会QAQ 毛子青<动态规划算法的优化技巧>论文里面提到了一类问题:石子合并. n堆石子.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分. 求出将n堆石子合并成一堆的最小得分和最大得分以及相应的合并方案. 设m[i,j]表示合并d[i..j]所得到的最小得分. 状态转移方程: 总的时间复杂度为O(n3). [优化方案] 四边形不等式: m[i,j]满足四边形不等式 令s[i,j]=max{k | m[

石子合并(四边形不等式优化dp)

该来的总是要来的———————— 经典问题,石子合并. 对于 f[i][j]= min{f[i][k]+f[k+1][j]+w[i][j]} From 黑书 凸四边形不等式:w[a][c]+w[b][d]<=w[b][c]+w[a][d](a<b<c<d) 区间包含关系单调: w[b][c]<=w[a][d](a<b<c<d) 定理1:  如果w同时满足四边形不等式和决策单调性 ,则f也满足四边形不等式 定理2:  若f满足四边形不等式,则决策s满足 s[i

pku 1160 Post Office 四边形不等式优化 经典DP

pku 1160 Post Office 四边形不等式优化 经典DP 邮局 经典的动态规划问题,主要体现在状态的设计和可以用四边形不等式优化上 题意是:给你n个村庄,然后让你用m个邮局对这些村庄进行覆盖,然后让你设计覆盖方式使得每个村庄到其对应邮局的路程和最短 本题状态的设计的灵感来源于"覆盖"这个点,最优子结构其实就是用 m 个邮局覆盖,以及用 m-1个邮局覆盖 那么,状态为dp[n][m] 为前 n 个村庄用 m 个邮局进行覆盖使得每个村庄到其对应的邮局的最短路程和 转移方程:dp

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

http://acm.hdu.edu.cn/showproblem.php?pid=3506 四边行不等式:http://baike.baidu.com/link?url=lHOFq_58V-Qpz_nTDz7pP9xCeHnd062vNwVT830z4_aQoZxsCcRtac6CLzbPYLNImi5QAjF2k9ydjqdFf7wlh29GJffeyG8rUh-Y1c3xWRi0AKFNKSrtj3ZY7mtdp9n5W7M6BBjoINA-DdplWWEPSK#1 dp[i][j]表示第

Gym-101242B:Branch Assignment(最短路,四边形不等式优化DP)

题意:要完成一个由s个子项目组成的项目,给b(b>=s)个部门分配,从而把b个部门分成s个组.分组完成后,每一组的任 意两个点之间都要传递信息.假设在(i,j)两个点间传送信息,要先把信息加密,然后快递员从i出发到总部,再加 密,在到j点.出于安全原因,每次只能携带一条消息.现在给出了道路网络.各个部门和总部的位置,请输出快 递员要走的最小总距离. 思路:求最短路dis,排序. 由排序不等式,dis相近的分到一组. 那么就是一个分组问题,可以用四边形不等式: 决策单调性DP: 二分+单调栈: 斜

hdu 3480 dp 四边形不等式优化

http://acm.hdu.edu.cn/showproblem.php?pid=3480 给出一个数字集合 S,大小为 n,要求把这个集合分成m个子集,每分出一个子集的费用是子集中的 (max-min)^2,求最小费用. 开始的dp转移很容易想到. 首先对集合从小到大排序,dp[i][j] 表示前i个元素被分成j个子集的最小费用.然后枚举最后一个子集. dp[i][j] = min{dp[k-1][j-1] + cost(k, i)}; 这个转移明显是过不去的,n<10000 m<5000

石子合并(四边形不等式优化)

题目大意很简单,和普通的石子合并过程没有区别,只是花费变成了一个多项式,若连续的任意个石子权值和为x,那么代价变为F(x) = sigma(a[i] * x^i),求将n堆石子合并为一队的最小花费. 对于暴力的做法,复杂度是O(n^3)的,所以要优化 我们知道当a, b, c, d(a <= b < c <= d)当有cost[a][c] + cost[b][d] <= cost[a][d] + cost[b][c] 时,我们称其满足四边形不等式,设p[i][j]表示当区间[i,

BZOJ 1010 玩具装箱toy(四边形不等式优化DP)(HNOI 2008)

Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的.同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到第j个玩具放到一个容器中,那么容器的长度将为 x=j-i+Sigma(Ck) i<