一般用 tD / eD 描述动态规划的规模,即有 O(nt)O(n^t) 个状态,每个状态通过 O(ne)O(n^e) 个子问题推出答案。

wqs 二分

决策单调性

我们首先介绍四边形不等式。假设要求解最小值,如果有转移 fjfi+w(i,j)f_j\leftarrow f_i+w(i,j),且 ww 满足四边形不等式,即若 a<b<c<da<b<c<d,则 w(a,d)+w(b,c)w(a,c)+w(b,d)w(a,d)+w(b,c)\ge w(a,c)+w(b,d),则具有决策单调性:随着 ii 的增大,转移点 pip_i 不降。

证明

采用反证法,存在 pj<pi<i<jp_j<p_i<i<j,那么:

fpi+w(pi,i)fpj+w(pj,i)fpj+w(pj,j)fpi+w(pi,j)f_{p_i}+w(p_i,i)\le f_{p_j}+w(p_j,i)\\ f_{p_j}+w(p_j,j)\le f_{p_i}+w(p_i,j)\\

因此得到 w(pi,i)+w(pj,j)w(pj,i)+w(pi,j)w(p_i,i)+w(p_j,j)\le w(p_j,i)+w(p_i,j),不满足四边形不等式。如果相等,说明两个不等式都是等式,pjp_j 也可以转移到 ii,那么 pip_i 不成立。

分治处理

直接套用分治可以 O(nlogn)O(n\log n) 完成一层的转移,只要 ww 可以直接计算或者增量计算即可。

[PtzS2020-6] Rhythm Game

Portal.

fi,jf_{i,j} 代表前 ii 个音符敲击 jj 个?这样转移就需要枚举连续敲击之类的,不太方便。改为漏了 jj 个,还是不太方便,因此强制钦定第 jj 个漏了,这样可以在 n+1n+1 算答案,正好统计最后的 PP

转移就是 fi,jfk,j1+w(k+1,i1)f_{i,j}\leftarrow f_{k,j-1}+w(k+1,i-1)ww 满足四边形不等式,证明容易做差得到。

值得注意的是,当 i>ji>j 时,w(i,j)w(i,j) 是不满足四边形不等式的,但是转移的时候却会出现这种情况,因此要把 fi,depfi1,dep1f_{i,dep}\leftarrow f_{i - 1, dep -1} 的转移单独拉出来。代码

斜率优化

数据结构优化


Nothing built can last forever.
本站由 iznomia 使用 Stellar 1.30.4 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。