四边形不等式优化 DP
First Post:
Last Update:
Word Count:
Read Time:
Page View: loading...
Last Update:
Word Count:
992
Read Time:
3 min
Page View: loading...
引入(DP 形式)
在最优化 DP 中,常见如下形式的 DP 转移方程
四边形不等式用于证明以上的转移方程具有性质“决策单调性”。
这里的
四边形不等式
对于任意
则称函数
简单来说,就是“相交优于包含”。
顺便,显然若
四边形不等式可以理解为在合理的定义域内,
的二阶混合差分 非正。
因此四边形不等式也可以理解为函数凸性。
决策单调性
在式
四边形不等式是决策单调性的一个充分不必要条件。
基于决策单调性,有两种主流方法可以将 DP 优化到
分治
假如
则可以对
具体来说,我们定义过程
则
- 令
,从 枚举决策点计算 ,记录其最优决策点为 ; - 计算
; - 计算
。
容易得到过程的时间复杂度为
一般来说,解决全局问题需要调用
Trick:类莫队转移贡献
存在一个很强的结论,就是即使代价函数
分析一下端点移动的操作数就证完了。
单调队列 + 二分
在
在双端队列中维护有序三元组
- 初始时将
插入队列; - 从
枚举点 ,顺便计算 :- 检查队头的三元组,令
,若此时 ,那这个元组已经没用了,将它从队头弹出; - 从队头取当前最优决策点转移
; - 将决策点
插入队尾,具体地,- 若队尾的决策点
在 处劣于 ,根据决策单调性,这整个元组没用了,将他从队尾弹出; - 若队尾的决策点
在 处优于 而在 处劣于 ,那我们二分这个点 使得 处 较劣而 处 较优; - 将队尾的
,将 插入队尾。
- 若队尾的决策点
- 检查队头的三元组,令
单调队列的均摊是
Trick:计算代替二分
有时可以直接计算决策的“反超点”,从而做到震撼人心的