决策单调性
对于有决策单调性的问题,直接上分治可以做到
但是对于满足四边形不等式的矩阵,SMAWK 算法可以在
如果矩阵两维不一样大,那么复杂度就(可以这样认为)是
首先先探究满足四边形不等式的矩阵有什么性质。
令
四边形不等式:
推论:
对于一个
-
如果
n\ge m ,那么把所有偶数行提出来归约到\lfloor\dfrac{n}{2}\rfloor,m 规模的问题。然后对于每一个奇数行,在相邻两行的决策之间暴力枚举求答案,显然总枚举次数是O(n+m) 的。 -
如果
n<m ,则我们需要删去一些无用列使得n=m 。
现在重点来看
我们考虑求出一个下三角矩阵使得每一行的最小值都在其中。根据之前的性质可以发现一定存在这样的下三角矩阵。
假设当前考虑到第
-
如果
m-i+k+1=n ,即剩下的列的个数不超过n-k ,那么就把这一列加入。 -
如果
a_{z_k,k}\ge a_{i,k} ,那么此时第z_k 列没有任何作用,删除第z_k 列。 -
如果
a_{z_k,k}<a_{i,k} ,那么此时第i 列在前k 行没有任何作用,可以得出:-
如果
k<n ,那么加入第i 列。 -
如果
k=n ,那么删除第i 列。
-
这样做一次的时间复杂度是
当问题归约到
毛估估一下,你就会拍案而起:这个算法时间复杂度显然是
板子题:CF1423M