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


    四边形不等式与决策单调

    四边形不等式

    定义

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

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

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

    判定定理

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

    则w满足四边形不等式。

    可以感性理解一下吧:(a<biff 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) o 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,din 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) o O(n^2))

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

  • 相关阅读:
    hdu 1269 迷宫城堡 (并查集)
    hdu 1272 小希的迷宫 (深搜)
    hdu 1026 Ignatius and the Princess I (深搜)
    hdu 1099 Lottery
    hdu 1068 Girls and Boys (二分匹配)
    几个基础数位DP(hdu 2089,hdu 3555,uestc 1307 windy 数)
    hdu 1072 Nightmare (广搜)
    hdu 1398 Square Coins (母函数)
    hdu 1253 胜利大逃亡 (深搜)
    hdu 1115 Lifting the Stone (求重心)
  • 原文地址:https://www.cnblogs.com/Bhllx/p/11006308.html
Copyright © 2020-2023  润新知