目录
四变形不等式
(以下所有的自变量的讨论均在整数范围内,设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\)
- 单调队列维护三元组\((l,r,p)\),表示\(f_{l-r}\)的最优决策点目前最优是p
- 队头是否合法,即\(r\leq p\),否则弹出
- 取队头计算\(f_i\),队头l++
- 从队尾向前枚举,如果计算\(f_l\)的已有决策点不如现在的i优秀,弹出
- 如果队列还有元素,二分查找\(l-r\)中第一个可以让决策点i更优秀的位置
- 更改队尾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]\}\),如果满足
- 二元函数w满足四边形不等式
- 二元函数w满足包含单调
- 边界\(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\)
由四边形不等式有
\(k'==l\),恒满足条件
设\(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)\)。