斜率优化与决策单调性

斜率优化本质:维护凸包

基本上都是得到一个答案斜率式,然后后面的不会比前面的更优,找到这样的斜率临界点(二分),维护上/下凸包。

经常使用单调队列维护是因为斜率单调不降,单调栈是因为斜率单调不增。 $x$ 坐标假如不单调递增的话就不能用线性数据结构维护,可以使用李超树/ $cdq$ 分治。

决策单调性:决策点单调不降

例如,用单调队列维护的斜率优化,我们发现,假如一个点在这个时刻已经不是决策点,那么在之后也一定不是,所以它的决策点单调不降,才能使用决策单调性。

通常都是二分+单调栈处理出每个决策点管理区间或者分治找到 $mid$ 点的最佳决策点,因为单调不增,分治维护。

注意,二分+单调栈需要贡献能 $O(1)$ 求出。若不能可尝试用分治+双指针的方式。

原文地址:https://www.cnblogs.com/xugangfan/p/15147685.html