单调队列优化
文章平均质量分 76
StaroForgin
这个作者很懒,什么都没留下…
展开
-
[ARC125F]Tree Degree Subset Sum
对于OneInDark来说,这种题就是水题,垃圾,随便切。_○/|_原创 2021-08-23 20:53:09 · 283 阅读 · 0 评论 -
[CF939F]Cutlet
Cutlet 题解 很简单的一道dp题 定义为在前秒内另一面煮了秒时翻面的总数。这方程式也十分好想, ,注意,只有在区间中才会进行翻转的赋值。 时间复杂度,明显会T,空间上也要加滚动数组才过得去,考虑优化。 首先,只有在区间内才会翻转,所以区间外的空档可以之间跳过去,这也是为什么需要要用背面时间赋值。 其次,我们发现每个区间内如果要翻转次数是不会超过2的,所以可以分别枚举翻的时间,只翻一次枚举时间点,翻两次枚举时间段长度,可以用单调队列来维护最优决策点。 由于,总的时间复杂度不会超过,可以过原创 2020-08-12 20:23:10 · 148 阅读 · 0 评论 -
小奇探险
小奇探险 题解 看到这道题这道题我们先考虑dp。我们从最后一个宝箱开始dp,指从第i个宝箱开始的最大收益。 dp方程式为。最后找到1-m中最大的即可。因为数据范围较大,我们需要加上单调队列优化。 源码 #include<cstdio> #include<cmath> #include<cstring> #include<iostrea...原创 2019-10-23 20:05:01 · 193 阅读 · 0 评论 -
[CSP day2T2]划分
划分 题解 本题很明显的一道dp题。 我们可以先写出一个朴素的dp,暴力就不分析了,表示将j+1-i的划为一段的最小值。很明显,这是一个的算法,只能得到32分。我们需要考虑一下dp的优化,一眼单调队列(笔者也只想得到这个)。我们将划分点定下来,先将所有在它前面的塞入队列,再更新再划分点后面的点,就可以做到,有64分了。 之后是一个十分重要的结论: ,这其实通过单调队列分析得到。 接下来...原创 2019-11-21 14:45:11 · 491 阅读 · 0 评论