DP的单调队列优化和斜率优化

省队第三轮集训比赛好多题不会啊……来补一补知识点吧。

众所周知单调队列优化是斜率优化的基础,所以肯定要先来说一下单调队列优化DP/se

滑动窗口

滑动窗口问题可以用来解决数组或者是字符串的子元素问题,通常是将双嵌套循环转变为单循环问题,从而将时间复杂度降为线性。

例如,我们给定一个数组,求其中长度为 $ k $ 的子串的元素和的最大值。

很容易想到的是,我们可以两重循环暴力计算,第一层美剧起点,第二层枚举当前子串求和, 复杂度约为 $ \Theta (k \times n) $ 。

显然当 $ n $ 足够大时,这个做法并不能满足需求。

考虑优化这个算法。

我们考虑维护一个长度为 $ 2 $ 的窗口,

单调队列优化DP

对于单调队列优化而言,一般来讲都是将 $ \Theta (n ^ 2) $ 的复杂度优化到 $ \Theta (n) $ 的复杂度。

斜率优化DP

posted @ 2021-07-19 17:54  Shadow_hyc  阅读(50)  评论(0)    收藏  举报