- 决策单调性定义与证明
https://www.cnblogs.com/YSFAC/p/13363203.html
详见此文。
重点:
考虑形如𝑑𝑝(𝑖)=𝑚𝑖𝑛{𝑑𝑝(𝑗)+𝑤(𝑗,𝑖)}的dp。(max类似)
其中每一个j都称为一个决策点。
定义:一个dp满足决策单调性的充要条件是:对于两个决策点𝑥<𝑦,若在i处y优于x,则在[𝑖+1,𝑛]处y都优于x。
定理:若w满足四边形不等式,则dp满足决策单调性。
定义:若二元函数w满足∀𝑎<𝑏≤𝑐<𝑑,𝑤(𝑎,𝑐)+𝑤(𝑏,𝑑)≤𝑤(𝑏,𝑐)+𝑤(𝑎,𝑑),则称其满足四边形不等式。
推论,若w只与i有关,即w(i),则必然符合四边形不等式。且此时,该类dp适宜用单调队列优化。
- 决策单调性公式对应的解题方法
https://www.cnblogs.com/Winniechen/p/9218864.html
https://www.cnblogs.com/flashhu/p/9480669.html
详见此两文。
主要方法:
单调队列,单调栈,分治,斜率优化。在单调队列和单调栈上二分查找。
- 斜率优化
https://www.cnblogs.com/MashiroSky/p/6009685.html
详见此文。
(1)先证明决策单调性。
(2)若b[j]单调,则可用单调队列维护一个下凸包,每个元素是(b(k),c(k))。
(3)在下凸包上二分查找切点作为最优决策点。
(4)队尾是否pop要看是否能维护下凸包。队首是否pop要看-a[i]是否单调,若单调则可以pop直到切点,否则无法pop。
(5)若b[j]不单调,则需要用cdq分治或splay维护凸包。
- cdq分治:
https://www.cnblogs.com/flashhu/p/9381075.html