【以前的空间】《用单调性优化动态规划》

一、单调队列

  在队首队尾同时进行删除,在队尾进行插入。

二、一般性质

  1、在原数组中的位置

  2、他在动态规划中的状态值

单调队列保证这两个值同时单调(不同时单调的话保证位置单调用bst存状态)

三、一般式

f(x)=opt(const[i]),i=[bound[x],x-1],其中bound[x]随着x单调不下降,const[i]则是可以根据i在常数时间内确定的唯一的常数,(或者在对数级)

1、如果位置和状态值同时单调用约束先出队头,然后算状态,然后在将当前加入。

2、如果位置单调状态值不单调,用bst维护状态值。

以前写过的题现在写竟然又不会了……然后我的四边形不等式优化的姿势好像有点奇怪(因为是学习某位大神的))

玩具装箱toy

3、满足f[i,j]+f[i',j']<=f[i',j]+f[i,j'],用四边形不等式优化

4、满足斜率单调用斜率优化

5、满足斜率单调, 但决策点随机,用splay维护凸包(orz)

原文地址:https://www.cnblogs.com/Macaulish/p/6492106.html