形式 1 1 1
转移形如
f
(
i
,
j
)
=
{
min
i
<
k
≤
j
f
(
i
,
k
−
1
)
+
f
(
k
,
j
)
+
w
(
i
,
j
)
,
i
<
j
0
,
i
=
j
∞
,
i
>
j
f(i,j)=\left\{ \begin{aligned} \min_{i<k\le j} f(i,k-1)+f(k,j)+w(i,j),i<j\\ 0,i=j\\ \infty,i>j \end{aligned} \right.
f(i,j)=⎩
⎨
⎧i<k≤jminf(i,k−1)+f(k,j)+w(i,j),i<j0,i=j∞,i>j
给出一些定义
若函数
g
(
i
,
j
)
g(i,j)
g(i,j)满足
a
≤
b
≤
c
≤
d
,
g
(
a
,
c
)
+
g
(
b
,
d
)
≤
g
(
a
,
d
)
+
g
(
b
,
c
)
a\le b\le c\le d,g(a,c)+g(b,d)\le g(a,d)+g(b,c)
a≤b≤c≤d,g(a,c)+g(b,d)≤g(a,d)+g(b,c)(可简记为交叉小于等于包含),那么称函数
g
g
g满足四边形不等式
若函数
g
(
i
,
j
)
g(i,j)
g(i,j)满足
a
≤
b
≤
c
≤
d
,
g
(
b
,
c
)
≤
g
(
a
,
d
)
a\le b\le c\le d,g(b,c)\le g(a,d)
a≤b≤c≤d,g(b,c)≤g(a,d),那么称函数
g
g
g满足区间单调性
定理1 若 w w w满足四边形不等式和区间单调性,那么 f f f满足四边形不等式
证明:
a
=
b
a=b
a=b或者
c
=
d
c=d
c=d时显然成立
对区间长度
d
−
a
d-a
d−a进行归纳证明
-
a
<
b
=
c
<
d
a<b=c<d
a<b=c<d时
设 k = min { k ∣ f ( a , k − 1 ) + f ( k , d ) + w ( a , d ) } k=\min \{k|f(a,k-1)+f(k,d)+w(a,d)\} k=min{k∣f(a,k−1)+f(k,d)+w(a,d)},即 k k k为 f ( a , d ) f(a,d) f(a,d)的最优决策点
若 k ≤ b k\le b k≤b,则有
f ( a , b ) + f ( b , d ) ≤ w ( a , b ) + f ( a , k − 1 ) + f ( k , b ) + f ( b , d ) f(a,b)+f(b,d)\le w(a,b)+f(a,k-1)+f(k,b)+f(b,d) f(a,b)+f(b,d)≤w(a,b)+f(a,k−1)+f(k,b)+f(b,d)
≤ w ( a , d ) + f ( a , k − 1 ) + f ( k , d ) = f ( a , d ) \le w(a,d)+f(a,k-1)+f(k,d)=f(a,d) ≤w(a,d)+f(a,k−1)+f(k,d)=f(a,d)
k > b k>b k>b同理 -
a
<
b
<
c
<
d
a<b<c<d
a<b<c<d时
设 y = min { y ∣ f ( a , y − 1 ) + f ( y , d ) + w ( a , d ) } , z = min { z ∣ f ( b , z − 1 ) + f ( z , c ) + w ( b , c ) } y=\min \{y|f(a,y-1)+f(y,d)+w(a,d)\},z=\min \{z|f(b,z-1)+f(z,c)+w(b,c)\} y=min{y∣f(a,y−1)+f(y,d)+w(a,d)},z=min{z∣f(b,z−1)+f(z,c)+w(b,c)},即 y y y为 f ( a , d ) f(a,d) f(a,d)的最优决策点, z z z为 f ( b , c ) f(b,c) f(b,c)的最优决策点
若 y ≤ z y\le z y≤z,则有
f ( a , c ) + f ( b , d ) f(a,c)+f(b,d) f(a,c)+f(b,d)
≤ w ( a , c ) + f ( a , y − 1 ) + f ( y , c ) + w ( b , d ) + f ( b , z − 1 ) + f ( z , d ) \le w(a,c)+f(a,y-1)+f(y,c)+w(b,d)+f(b,z-1)+f(z,d) ≤w(a,c)+f(a,y−1)+f(y,c)+w(b,d)+f(b,z−1)+f(z,d)
≤ w ( a , c ) + w ( b , d ) + f ( a , y − 1 ) + f ( b , z − 1 ) + f ( y , c ) + f ( z , d ) \le w(a,c)+w(b,d)+f(a,y-1)+f(b,z-1)+f(y,c)+f(z,d) ≤w(a,c)+w(b,d)+f(a,y−1)+f(b,z−1)+f(y,c)+f(z,d)
≤ w ( a , d ) + w ( b , c ) + f ( a , y − 1 ) + f ( b , z − 1 ) + f ( y , d ) + f ( c , z ) \le w(a,d)+w(b,c)+f(a,y-1)+f(b,z-1)+f(y,d)+f(c,z) ≤w(a,d)+w(b,c)+f(a,y−1)+f(b,z−1)+f(y,d)+f(c,z)
= f ( a , d ) + f ( b , c ) =f(a,d)+f(b,c) =f(a,d)+f(b,c)
y > z y>z y>z时,同理
定理2 设 p ( i , j ) p(i,j) p(i,j)为 f ( i , j ) f(i,j) f(i,j)的最小最优决策点,若 f f f满足四边形不等式,则有 p ( l , r − 1 ) ≤ p ( l , r ) ≤ p ( l + 1 , r ) p(l,r-1)\le p(l,r) \le p(l+1,r) p(l,r−1)≤p(l,r)≤p(l+1,r)
由于
p
(
l
,
r
−
1
)
≤
p
(
l
,
r
)
p(l,r-1)\le p(l,r)
p(l,r−1)≤p(l,r)的证明和
p
(
l
,
r
)
≤
p
(
l
+
1
,
r
)
p(l,r)\le p(l+1,r)
p(l,r)≤p(l+1,r)类似,所以我们只证明
p
(
l
,
r
−
1
)
≤
p
(
l
,
r
)
p(l,r-1)\le p(l,r)
p(l,r−1)≤p(l,r)
证明:设
a
=
p
(
l
,
r
−
1
)
,
b
=
p
(
l
,
r
)
a=p(l,r-1),b=p(l,r)
a=p(l,r−1),b=p(l,r)
假设
a
>
b
a>b
a>b,则有
b
≤
a
≤
r
−
1
≤
r
b\le a\le r-1\le r
b≤a≤r−1≤r,由四边形不等式可得
f
(
b
,
r
−
1
)
+
f
(
a
,
r
)
≤
f
(
b
,
r
)
+
f
(
a
,
r
−
1
)
f(b,r-1)+f(a,r)\le f(b,r)+f(a,r-1)
f(b,r−1)+f(a,r)≤f(b,r)+f(a,r−1)
因为
b
b
b是
f
(
l
,
r
)
f(l,r)
f(l,r)的最优决策点,所以
f
(
l
,
b
−
1
)
+
f
(
b
,
r
)
≤
f
(
l
,
a
−
1
)
+
f
(
a
,
r
)
f(l,b-1)+f(b,r)\le f(l,a-1)+f(a,r)
f(l,b−1)+f(b,r)≤f(l,a−1)+f(a,r)
两式相加得
f
(
l
,
b
−
1
)
+
f
(
b
,
r
−
1
)
≤
f
(
l
,
a
−
1
)
+
f
(
a
,
r
−
1
)
f(l,b-1)+f(b,r-1)\le f(l,a-1)+f(a,r-1)
f(l,b−1)+f(b,r−1)≤f(l,a−1)+f(a,r−1)
这与
a
a
a是
f
(
l
,
r
−
1
)
f(l,r-1)
f(l,r−1)的最小最优决策点矛盾,故
a
≤
b
a\le b
a≤b,即
p
(
l
,
r
−
1
)
≤
p
(
l
,
r
)
p(l,r-1)\le p(l,r)
p(l,r−1)≤p(l,r)
因此,时间复杂度变为
∑
l
=
1
n
∑
r
=
l
n
p
(
l
+
1
,
r
)
−
p
(
l
,
r
−
1
)
=
∑
i
=
1
n
p
(
n
−
i
+
1
,
n
)
−
p
(
1
,
i
)
≤
n
2
\sum_{l=1}^n\sum_{r=l}^np(l+1,r)-p(l,r-1)=\sum_{i=1}^np(n-i+1,n)-p(1,i)\le n^2
l=1∑nr=l∑np(l+1,r)−p(l,r−1)=i=1∑np(n−i+1,n)−p(1,i)≤n2
例1 石子合并
设有
N
N
N个堆石子排成一排,其编号为
1
,
2
⋯
N
1,2\cdots N
1,2⋯N,每堆石子有质量
m
i
m_i
mi,每次可以将相邻两个石堆合并,合并的代价为两个石堆的质量和,问将
N
N
N个石堆合并成一堆的最小代价
N
≤
1000
,
m
i
≤
1000
N\le1000,m_i\le1000
N≤1000,mi≤1000
s o l u t i o n : solution: solution:
w ( i , j ) = s j − s i − 1 w(i,j)=s_j-s_{i-1} w(i,j)=sj−si−1,显然这个函数满足四边形不等式,时间复杂度即为 O ( n 2 ) O(n^2) O(n2)
形式2
转移形如
f
(
i
,
j
)
=
min
k
≤
j
f
(
i
−
1
,
k
)
+
w
(
k
,
j
)
(
i
≤
n
,
j
≤
m
)
f(i,j)=\min_{k\le j}f(i-1,k)+w(k,j)(i\le n,j\le m)
f(i,j)=k≤jminf(i−1,k)+w(k,j)(i≤n,j≤m)
设
p
(
i
,
j
)
p(i,j)
p(i,j)为
f
(
i
,
j
)
f(i,j)
f(i,j)的最小的最优决策点
若函数
w
w
w满足四边形不等式,则有类似的结论
p
(
i
,
j
−
1
)
≤
p
(
i
,
j
)
≤
p
(
i
,
j
+
1
)
p(i,j-1)\le p(i,j)\le p(i,j+1)
p(i,j−1)≤p(i,j)≤p(i,j+1)
证明类似
考虑使用分治解决,具体地,设一个递归函数
s
o
l
v
e
(
l
,
r
,
L
,
R
)
solve(l,r,L,R)
solve(l,r,L,R)表示要求出
p
(
i
,
l
∼
r
)
p(i,l\sim r)
p(i,l∼r),而且
p
p
p的范围在
L
∼
R
L\sim R
L∼R,每次先算出
p
(
i
,
l
+
r
2
)
p(i,\frac{l+r}{2})
p(i,2l+r),然后递归到两边,时间复杂度为
O
(
n
m
log
m
)
O(nm\log m)
O(nmlogm)
例2 「POI2011」Lightning Conductor
给定一个长度为
n
n
n的序列
a
1
⋯
a
n
a_1\cdots a_n
a1⋯an,要求对每个
1
≤
r
≤
n
1\le r\le n
1≤r≤n,找到最小的非负整数
f
r
f_r
fr,满足
∀
l
∈
[
1
,
n
]
,
a
l
≤
a
r
+
f
r
−
∣
r
−
l
∣
\forall l\in[1,n],a_l\le a_r+f_r-\sqrt{|r-l|}
∀l∈[1,n],al≤ar+fr−∣r−l∣
s o l u t i o n : solution: solution:
易知,
f
r
=
max
l
=
1
n
{
a
l
+
∣
r
−
l
∣
}
−
a
r
f_r=\max_{l=1}^n\{a_l+\sqrt{|r-l|}\}-a_r
fr=maxl=1n{al+∣r−l∣}−ar
不妨设
l
<
r
,
f
r
=
max
l
=
1
n
{
a
l
+
∣
r
−
l
∣
}
−
a
r
,
w
(
i
,
j
)
=
a
i
+
∣
i
−
j
∣
l<r,f_r=\max_{l=1}^n\{a_l+\sqrt{|r-l|}\}-a_r,w(i,j)=a_i+\sqrt{|i-j|}
l<r,fr=maxl=1n{al+∣r−l∣}−ar,w(i,j)=ai+∣i−j∣
不难证明
w
(
i
,
j
)
w(i,j)
w(i,j)满足四边形不等式,故具有决策单调性,使用上述分治算法就能做到
O
(
n
log
n
)
O(n\log n)
O(nlogn)
形式3
转移形如 f ( i ) = min j < i f ( j ) + w ( j + 1 , i ) ( i ≤ n ) f(i)=\min_{j<i}f(j)+w(j+1,i)(i\le n) f(i)=j<iminf(j)+w(j+1,i)(i≤n)
定理3 若 w ( i , j ) w(i,j) w(i,j)满足四边形不等式,则 f ( i ) f(i) f(i)具有决策单调性
可以像定理 2 2 2那样用反证法证明
此类问题可以用单调队列加二分解决,具体地,每个决策点可以影响一个区间的答案,队列中的元素形如 [ l , r , p ] [l,r,p] [l,r,p]表示目前 [ l , r ] [l,r] [l,r]的最优决策为 p p p,每次新加入一个决策时,从队尾开始比较,看看当前决策是否可以覆盖队尾决策,若可以,弹掉队尾,否则判断二分判断分界点在哪里,如果队首的已经不能影响到当前点时就弹掉队首,时间复杂度为 O ( n log n ) O(n\log n) O(nlogn)
例4 P1912 [NOI2009] 诗人小G
有 n n n个物品,每个物品价值为 a i a_i ai,你现在要把它们分成若干个连续段。设一个段内的物品价值和为 S S S,那么代价就是 ∣ S − L ∣ p |S−L|^p ∣S−L∣p,求最小代价
n ≤ 1 e 5 a , L ≤ 3 e 6 P ≤ 10 n\le 1e5\ \ a,L\le3e6\ \ P\le10 n≤1e5 a,L≤3e6 P≤10
s o l u t i o n : solution: solution:
f
[
i
]
=
min
j
<
i
{
f
[
j
]
+
w
(
j
+
1
,
i
)
}
,
w
(
i
,
j
)
=
∣
S
(
j
)
−
S
(
i
−
1
)
−
L
∣
p
f[i]=\min_{j<i}\{f[j]+w(j+1,i)\},w(i,j)=|S(j)−S(i-1)−L|^p
f[i]=j<imin{f[j]+w(j+1,i)},w(i,j)=∣S(j)−S(i−1)−L∣p
可以证明
w
(
i
,
j
)
w(i,j)
w(i,j)满足四边形不等式,即可
O
(
n
log
n
)
O(n\log n)
O(nlogn)解决问题
定理4 w w w满足四边形不等式当且仅当, w ( i , j ) + w ( i + 1 , j + 1 ) ≤ w ( i + 1 , j ) + w ( i , j + 1 ) w(i,j)+w(i+1,j+1)≤w(i+1,j)+w(i,j+1) w(i,j)+w(i+1,j+1)≤w(i+1,j)+w(i,j+1)
必要性显然,下面证明充分性
证明:
转换一下形式:
w
(
i
,
j
)
−
w
(
i
+
1
,
j
)
≤
w
(
i
,
j
+
1
)
−
w
(
i
+
1
,
j
+
1
)
w(i,j)-w(i+1,j)≤w(i,j+1)-w(i+1,j+1)
w(i,j)−w(i+1,j)≤w(i,j+1)−w(i+1,j+1)
考虑从
i
+
1
i+1
i+1推广到
i
+
k
i+k
i+k,
假设有
w
(
i
,
j
)
−
w
(
i
+
k
,
j
)
≤
w
(
i
,
j
+
1
)
−
w
(
i
+
k
,
j
+
1
)
w(i,j)-w(i+k,j)≤w(i,j+1)-w(i+k,j+1)
w(i,j)−w(i+k,j)≤w(i,j+1)−w(i+k,j+1)
并且有
w
(
i
+
k
,
j
)
−
w
(
i
+
k
+
1
,
j
)
≤
w
(
i
+
k
,
j
+
1
)
−
w
(
i
+
k
+
1
,
j
+
1
)
w(i+k,j)-w(i+k+1,j)≤w(i+k,j+1)-w(i+k+1,j+1)
w(i+k,j)−w(i+k+1,j)≤w(i+k,j+1)−w(i+k+1,j+1)
两式相加有
w
(
i
,
j
)
−
w
(
i
+
k
+
1
,
j
)
≤
w
(
i
,
j
+
1
)
−
w
(
i
+
k
+
1
,
j
+
1
)
w(i,j)-w(i+k+1,j)≤w(i,j+1)-w(i+k+1,j+1)
w(i,j)−w(i+k+1,j)≤w(i,j+1)−w(i+k+1,j+1)
我们把
i
+
k
i+k
i+k推广到了
i
+
k
+
1
i+k+1
i+k+1,所以可以从
i
+
1
i+1
i+1推广到所有情况
j
j
j的情况类似
四边形不等式一般解题过程
- 1.列出dp式
- 2.证明 w w w函数满足四边形不等式
- 3.证明 d p dp dp函数满足四边形不等式
- 4.用决策单调性优化 d p dp dp
四边形不等式实际解题过程
- 1.列出dp式
- 2.猜想或打表发现 w w w函数满足四边形不等式
- 3.猜想或打表发现 d p dp dp函数满足四边形不等式
- 4.用决策单调性优化 d p dp dp
参考资料:
- oiwiki四边形不等式优化
- 四边形不等式与决策单调性bykqp