码迷,mamicode.com
首页 > 其他好文 > 详细

四边形不等式

时间:2019-06-06 13:46:37      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:span   条件   枚举   队列   list   数学   spl   复杂度   单调队列   

四变形不等式

(以下所有的自变量的讨论均在整数范围内,设w(a,b)为关于a,b的二元函数)

定义

若二元函数满足当\(a\leq b\leq c\leq d,\)\(w(a,d)+w(b,c)\geq w(a,c)+w(b,d)\),则称二元函数满足四变形不等式。

性质

四边形不等式判定定理

\(a< b,w(a,b+1)+w(a+1,b)\geq w(a,b)+w(a+1,b+1)\),则二元函数w满足四变形不等式。

证明:

对于\(a<c\),一定有

\(w(a,c+1)+w(a+1,c)\geq w(a,c)+w(a+1,c+1)\)

假设\(a+k<c\),会有

\(w(a+k,c+1)+w(a+k+1,c)\geq w(a+k,c)+w(a+k+1,c+1)\)

同理\(a+k+1<c\),有

\(w(a+k+1,c+1)+w(a+k+2,c)\geq w(a+k+1,c)+w(a+k+2,c+1)\)

两式相加有

\(w(a+k,c+1)+w(a+k+2,c)\geq w(a+k,c)+w(a+k+2,c+1)\)

于是由数学归纳法有

\(a<b\leq c,w(a,c+1)+w(b.c)\geq w(a,c)+w(b,c+1)\)

发现\(a=b\)式子仍成立,于是即

\(a\leq b\leq c,w(a,c+1)+w(b,c)\geq w(a,c)+w(b,c+1)\)

同理,对于

\(a\leq b\leq c+k\),有

\(w(a,c+k+1)+w(b,c+k)\geq w(a,c+k)+w(b,c+k+1)\)

至于\(a\leq b\leq c+k+1\)

\(w(a,c+k+2)+w(b,c+k+1)\geq w(a,c+k+1)+w(b,c+k+2)\)

两式相加有

\(w(a,c+k+2)+w(b,c+k)\leq w(a,c+k)+w(b,c+k+2)\)

由数学归纳法有

\(a\leq b\leq c<d,w(a,d)+w(b,c)\leq w(a,c)+w(b,d)\)

发现当\(c=d\)时满足条件,于是

\[a\leq b\leq c\leq d,w(a,d)+w(b,c)\leq w(a,c)+w(b,d)\]

得证

一维线性递推优化

优化式

\(f_i=\min_{0\leq j<i}\{f_j+w(j,i)\},w\)满足四边形不等式

性质

一维递推决策递增定理

证明:

\(k,k'\)\(f_i\)的决策点并满足条件\(0\leq k'<k<i<i'\)

不难得知

\(f_i=f_k+w(k,i)\leq f_{k'}+w(k',i)\)

由四边形不等式得知

\(w(k',i')+w(k,i)\geq w(k',i)+w(k,i')\)

两式相加有

\(f_k+w(k,i')\leq f_{k'}+w(k',i')\)

于是易知决策点\(k\)\(k'\)更优,故得证。

推论:如果一个决策点a比它之前的一个决策点b优秀,则决策点b不可能成为以后的最优决策点。

实现

目前要求\(f_i\)

  1. 单调队列维护三元组\((l,r,p)\),表示\(f_{l-r}\)的最优决策点目前最优是p
  2. 队头是否合法,即\(r\leq p\),否则弹出
  3. 取队头计算\(f_i\),队头l++
  4. 从队尾向前枚举,如果计算\(f_l\)的已有决策点不如现在的i优秀,弹出
  5. 如果队列还有元素,二分查找\(l-r\)中第一个可以让决策点i更优秀的位置
  6. 更改队尾r,把新的三元组代表i的决策加入队列(注意,如果不能加入,剔除)

二维区间递推优化

优化式

\(f[l][r]=\min_{l\leq k<r}\{f[l][k]+f[k+1][r]+w[l][r]\}\)

包含单调

如果二元函数w满足\(a\leq b\leq c\leq d,w(a,d)\geq w(b,c)\),则称二元函数w满足包含单调。

区间递推判定定理

定义

对于递推方程,\(f[l][r]=\min_{l\leq k<r}\{f[l][k]+f[k+1][r]+w[l][r]\}\),如果满足

  1. 二元函数w满足四边形不等式
  2. 二元函数w满足包含单调
  3. 边界\(w(i,j)=f[i][i]=0\),非法状态为无限大

则f满足四边形不等式。

证明

对于\(j-i=1\)而言,有

\(f[i][j]=f[i][i]+f[j][j]+w[i][j]=w[i][j]\),恒满足四边形不等式

对于\(j-i=2\),有

  • \(f[i][j]\)的最优决策点为i

\(f[i][j]=f[i][i]+f[i+1][j]+w[i][j]=f[i+1][j]+w[i][j]=w[i+1][j]+\)
\(w[i][j]\geq w[i+1][j]+w[i][j-1]=f[i+1][j]+f[i][j-1]\)

于是有

\(i<j-1,f[i][j]+f[i+1][j-1]\geq f[i][j-1]+f[i+1][j]\)

满足四边形不等式

  • \(f[i][j]\)的最优决策点为i+1

\(f[i][j]=f[i][i+1]+f[j][j]+w[i][j]=f[i][i+1]+w[i][j]=w[i][i+1]+\)
\(w[i][j]\geq w[i][i+1]+w[i+1][j]=f[i][i+1]+f[i+1][j]\)

因此有

\(i<j-1,f[i][j]+f[i+1][j-1]\geq f[i][i+1]+f[i+1][j]\)
\(=f[i][j-1]+f[i+1][j]\)

也满足四边形不等式

再对于\(j-i=l\),设\(j-i<l\)恒满足四边形不等式

首先由四边形不等式已知

设x,y分别为\(f[i][j+1],f[i+1][j]\)的最优决策点,不妨设\(x\leq y<j\),不难得知有

\(i<j,w[i][j+1]+w[i+1][j]\geq w[i][j]+w[i+1][j+1]\)
\(x+1\leq y+1\leq j<j+1,f[x+1][j+1]+f[y+1][j]\)
\(\geq f[x+1][j]+f[y+1][j+1]\)

两式相加有

\(f[x+1][j+1]+w[i][j+1]+f[y+1][j]+w[i+1][j]\)
\(\geq f[x+1][j]+w[i][j]+f[y+1][j+1]+w[i+1][j+1]\)

\(f[i][x]+f[x+1][j+1]+w[i][j+1]+f[i+1][y]+f[y+1][j]+w[i+1][j]\)
\(\geq f[i][x]+f[x+1][j]+w[i][j]+f[i+1][y]+f[y+1][j+1]+w[i+1][j+1]\)

注意到左式即\(f[i][j+1]+f[i+1][j]\)的转移式,但是取得是最优决策,而右式为\(f[i][j],f[i+1][j+1]\)的转移式,但是不一定是最优决策,甚至可能不合法,因此有

\(f[i][x]+f[x+1][j+1]+w[i][j+1]+f[i+1][y]+f[y+1][j]+w[i+1][j]\)
$=f[i][j+1]+f[i+1][j]\geq $
$f[i][x]+f[x+1][j]+w[i][j]+f[i+1][y]+f[y+1][j+1]+w[i+1][j+1]\geq $
\(f[i][j]+f[i+1][j+1]\)

所以

\(i<j,f[i][j+1]+f[i+1][j]\geq f[i][j]+f[i+1][j+1]\)

因此当\(j-i=l\)时,满足四边形不等式,当\(x>y\),同理易证,所以由数学归纳法易知,f满足四边形不等式。

区间递推决策递增定理

定义

\(f[l][r]=\min_{l\leq k<r}\{f[l][k]+f[k+1][r]+w[l][r]\}\)中,如果f满足四边形不等式,则设\(p[l][r]\)\(f[l][r]\)的最优决策点,有\(p[l][r-1]\leq p[l][r]\leq p[l+1][r]\)

证明

  • \(p[l][r-1]\leq p[l][r]\)

设左式最优决策点\(k\),并设\(l\leq k'<k<r-1\),所以我们有

$f[l][r-1]=f[l][k]+f[k+1][r-1]+w[l][r-1]\leq $
\(f[l][k']+f[k'+1][r-1]+w[l][r-1]\)

\(f[l][k]+f[k+1][r-1]\leq f[l][k']+f[k'+1][r-1].....1\)

由四边形不等式有

\(l< k'+1<k+1\leq r-1<r\)

\(f[k'+1][r]+f[k+1][r-1]\geq f[k'+1][r-1]+f[k+1][r].....2\)

1,2式相加,有

\(f[l][k]+f[k+1][r]\leq f[l][k']+f[k'+1][r]\)

\(f[l][k]+f[k+1][r]+w[l][r]\leq f[l][k']+f[k'+1][r]+w[l][r]\)

所以易知决策点k比\(k'\)优秀,得证

  • \(p[l][r]\leq p[l+1][r]\)

设右式的最优决策点为\(k\),设\(l\leq k'<k<r\)

于是有

\(f[l][k]+f[k+1][r]+w[l][r]\leq f[l][k']+f[k'+1][r]+w[l][r]\)

\(f[l][k]+f[k+1][r]\leq f[l][k']+f[k'+1][r]...1\)

由四边形不等式有

  1. \(k'==l\),恒满足条件

  2. \(l<l+1\leq k'<k\)

\(f[l][k]+f[l+1][k']\geq f[l][k']+f[l+1][k]...2\)

1,2式相加有

\(f[l+1][k]+f[k+1][r]\leq f[l+1][k']+f[k'+1][r]\)

\(f[l+1][k]+f[k+1][r]+w[l+1][r]\leq f[l+1][k']+f[k'+1][r]+w[l+1][r]\)

易知,决策点\(k\)\(k'\)优秀。

于是得证

  • 总上所素,有\(p[l][r-1]\leq p[l][r]\leq p[l+1][r]\)

时间复杂度

根据区间递推决策递增定理,我们知道时间复杂度应该为\(O(\sum_{i=2}^n\sum_{l=1}^{n-i+1}(p[l+1][l+i-1]-p[l][l+i-2]+1))=\)
\(O(\sum_{i=2}^n(p[2][i]+p[3][i+1]+...+p[n-i][n])-(p[1][i-1]+p[2][i]+...+p[n-i-1][n-1])+n-i+1))\)
\(=O(\sum_{i=2}^n(p[n-i][n]-p[1][i-1]+n-i+1))=O(n^2)\)

梳理

定理名称 式子 条件 结果
四边形不等式判定定理 \(w(a,b+1)+w(a+1,b)\geq w(a,b)+w(a+1,b+1)\) a<b w满足四边形不等式
一维递推决策递增定理 \(f_i=\min_{j=0}^{i-1}\{f_j+w(i,j)\}\) w满足四边形不等式 f的最优决策点单调递增
区间递推判定定理 \(f[l][r]=\min_{k=l}^{r-1}\{f[l][k]+f[k+1][r]+w[l][r]\}\) w满足四边形不等式,包含递增,\(w[i][i]=f[i][i]=0\) f满足四边形不等式
区间递推决策递增定理 \(f[l][r]=\min_{k=l}^{r-1}\{f[l][k]+f[l+1][r]+w[l][r]\}\) f满足四边形不等式 最优决策点\(p[l][r-1]\leq p[l][r] \leq p[l+1][r]\)

经典模型

石子合并

问题

有n堆石子从左至右排成一排,第i堆石子重量\(w[i]\),每次可以选择相邻的两堆石子合并,新的石子重量为原来两堆之和,消耗体力值为新的石子的重量,询问最少消耗的体力之和。

首先注意到这是区间问题,于是可以设\(f[l][r]\)表示合并第l堆石子到第r堆石子消耗的最少体力值,于是有\(f[l][r]=\min_{k=l}^{r-1}\{f[l][k]+f[k+1][r]+w[l][r]\}\),时间复杂度\(O(n^3)\)

考虑到区间递推可以四边形不等式优化,发现w满足四边形不等式,且取到等号,也满足包含递增关系,边界可以开为0,因此可以使用四边形不等式优化成\(O(n^2)\)

四边形不等式

标签:span   条件   枚举   队列   list   数学   spl   复杂度   单调队列   

原文地址:https://www.cnblogs.com/a1b3c7d9/p/10984353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!