单调矩阵
定义
对于矩阵 A,定义 mini(A) 表示最大的 k 满足 Ai,k=minjAi,j,即第 i 行最靠后的最小值位置 .
定义:对于 i<j 满足 mini(A)≤minj(A) 的矩阵称作单调矩阵 . 若一个矩阵 A 的所有子矩阵均为单调矩阵,则称为完全单调矩阵 .
常规意义上的决策单调性问题就是单调矩阵上求列最小值的问题 .
对于任意 i1<i2,j1<j2 满足 Ai1,j1+Ai2,j2≤Ai1,j2+Ai2,j1,则称矩阵 A 满足四边形不等式 .
一个矩阵满足四边形不等式,则称其为蒙日矩阵或者蒙日阵 .
定理:矩阵 A 满足四边形不等式当且仅当对于任意 i,j 满足 Ai,j+Ai+1,j+1≤Ai,j+1+Ai+1,j . 证明考虑二维差分即可 .
显然蒙日阵均为完全单调矩阵,所以满足四边形不等式可以导出满足决策单调性 .
蒙日阵的生成
蒙日矩阵乘法((min,+) 矩阵乘法):
(A×B)i,j=mink{Ai,k+Bk,j}
断言:若 A 是蒙日阵,则下列矩阵都是蒙日阵:
- AT .
- λA 其中 λ≥0 .
- A 的某一行或列上全体加常数 c 后得到的矩阵 .
若 A,B 是蒙日阵,则 A+B 和 AB 都是蒙日阵 .
蒙日阵的乘积仍是蒙日阵
令 A,B 是蒙日阵,C=AB . 考察 i1≤i2,j1≤j2,k1 是 Ci1,j2 取到最小值的位置,k2 是 Ci2,j1 取到最小值的位置 . 不失一般性,令 k1≤k2 .
则:
Ci1,j1+Ci2,j2≤(Ai1,k1+Bk1,j1)+(Ai2,k2+Bk2,j2)=(Ai1,k1+Ai2,k2)+(Bk1,j1+Bk2,j2)≤(Ai1,k1+Ai2,k2)+(Bk1,j2+Bk2,j1)=(Ai1,k1+Bk1,j2)+(Ai2,k2+Bk2,j1)=Ci1,j2+Ci2,j1
即得原命题 .
一些常见的蒙日阵 A 的例子:
- Ax,y=min{x,y} .
- Ax,y=max{x,y} .
- Ax,y=xy .
- Ax,y=|x−y|p 其中 p≤1 .
- Ax,y=∑ni=1∑mj=ydi,j 其中 di,j≥0 .
- Ax,y=[x=k]vk .
- Ax,y=[y=k]vk .
- Ax,y=f(x−y) 其中 f 下凸 .
- Ax,y={−f({Tx,⋯,Ty})x≤y+∞otherwise. 其中 f 是 S 上的次模函数,T 是 2S 中的任意 |S| 个不同元素 .
注:函数 f 是 S 上的次模函数当且仅当对于任意 X,Y∈2S 有 f(X)+f(Y)≥f(X∩Y)+f(X∪Y) .
一维决策单调性
问题描述
考虑两种 DP:
- 对于 dpi,j=mink<j{dpi−1,k+wk,j},注意到相当于每次乘 WT 加若干列 dpi−1,y 构成的矩阵,所以若 W 是蒙日阵则 DP 有决策单调性 .
- 对于 dpi=minj<i{dpj+wj,i},可以类似分析出决策单调性 .
后称第一种 DP 为离线决策单调性,第二种 DP 为在线决策单调性 . 假设 w 可以 O(1) 计算 .
下面介绍解决两类问题的线性对数算法,线性算法在 OI 中没啥用就不说了 .
第一类问题又称为决策单调性最短路问题,可以证明答案一定是凸的:[JOISC 2023 Day3] Chorus .
分治
分治可以解决离线决策单调性的问题 .
solve(l,r,L,R) 表示计算 l…r 行的 mini(A),且 L≤mini(A)≤R,每次取中点 m=⌊l+r2⌋ 算 minm(A),分别处理 solve(l,m−1,L,minm(A)),solve(m+1,r,minm(A),R) 即可 .
共 O(logn) 层,每层 O(m) 个点,故复杂度为 O(m) .
这里可以注意一点:如果每次暴力移动指针计算所有 A,总的移动距离是线性对数级别的:CF868F .
二分栈
动态维护每个列 i 对应取到最小值的行区间 [li,ri] . 依次插入每个列 i:
- 若栈不为空且栈顶元素 j 满足 Alj,i≤Alj,j,弹栈,然后重复操作 .
- 若栈为空则加入 li=1,ri=n .
- 否则,取栈顶元素 j,二分出最大的 k 满足 Ak,j<Ak,i 然后令 rj←k,若 rj≠n 则加入 li=k+1,ri=n .
省流:对于任意两列,左边的列在一段前缀优,右边的列在一段后缀优,二分出分界点 .
显然时间复杂度为 O(mlogn) .
二维决策单调性
最优搜索树问题
问题:
dpi,j={0i≥jmini≤k<j{dpi,k+dpk+1,j}+wi,ji<j
定义:若方阵 A 满足对于任意 i1≤i2≤j2≤j1 都有 Ai1,j1≥Ai2,j2 则称 A 满足区间包含单调性 .
定理:若 w 满足四边形不等式和区间包含单调性,则 dp 满足四边形不等式 .
证明
只需证对于任意 i1≤i2≤j1≤j2 满足 dpi1,j1+dpi2,j2≤dpi1,j2+dpi2,j1 .
对 j2−i1 归纳,j2−i1≤1 时显然 .
令 dpi,j,x=wi,j+dpi,x+dpx+1,j . 讨论:
- 若 i2=j1,则需要证明三角形不等式 dpi1,j1+dpj1,j2≤dpi1,j2,令 dpi1,j2 的最优决策点是 u≤j1,则:
dpi1,j1+dpi2,j2≤dpi1,j1,u+dpj1,j2=wi1,j1+dpi1,u+dpu+1,j1+dpj1,j2≤wi1,j2+dpi1,u+dpu+1,j2=dpi1,j2
u>j1 类似 .
- 若 i2≠j1,令 dpi1,j2 与 dpi2,j1 的最优决策点分别为 u≤v,则:
dpi1,j1+dpi2,j2≤dpi1,j1,u+dpi2,j2,v=(wi1,j1+wi2,j2)+(dpi1,u+dpi2,v)+(dpu+1,j1+dpv+1,j2)≤(wi1,j2+wi2,j1)+(dpi1,u+dpi2,v)+(dpu+1,j2+dpv+1,j1)=dpi1,j2+dpi2,j1
u>v 类似 .
证明完毕 .
定理:设 dpi,j 的最优决策点为 Ki,j,则 Ki−1,j≤Ki,j≤Ki,j+1 .
证明:下面证明 Ki,j≤Ki,j+1,另一边类似 .
构造:
Ap,q={wi,q+dpi,p+dpp+1,qi≤p<q+∞otherwise
那么 A 是蒙日阵,且 Ki,j=minj(A),所以有单调性 .
那么按区间长度依次计算 dp 和 K 即可做到 Θ(n2) 时间复杂度 .
蒙日矩阵乘法
问题:给两个蒙日矩阵 A,B,求 C=AB .
定理:令 Ki,j 为 Ci,j 最小的最优决策点,则 Ki,j−1≤Ki,j≤Ki+1,j .
类似地,也只需要证明 Ki,j−1≤Ki,j .
若存在 j1<j2 使得 Ki,j1>Ki,j2 . 令 Ki,j1=k,Ki,j2=l,则:
Ci,j1+Ci,j2=(Ai,k+Bk,j1)+(Ai,l+Bl,j2)≥(Ai,k+Bk,j2)+(Ai,l+Bl,j1)>Ci,j2+Ci,j1
矛盾!则即得 Ki,j1≤Ki,j2 .
那么可以用和上一节类似的方法 Θ(n2) 计算蒙日矩阵乘法:序列变换 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
2023-08-09 Max_QAQ 计算几何