![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调队列
Splaying
Studying
展开
-
落谷P1440(求m区间内的最小值)
求m区间内的最小值 思路 单调队列维护或者线段树或者RMQ,都是模板题没啥好说的。但是这道题有个坑就是不包含右端点的区间查询最值那么先做输出再做区间维护修改。 #include <cstring> #include <cstdio> #include <deque> using namespace std; struct info{ int n,pos; }; deque<info>d; int main() { int n,k,x; while(~s原创 2020-08-02 22:12:14 · 181 阅读 · 0 评论 -
落谷P2032(扫描)
扫描 思路 单调队列 或者 线段树 或者 RMQ都可以解吧,最值问题的模型解法就这么几种。其中线段树可以解决带修改的最值模型,单调队列 和 RMQ只适合维护静态的序列。 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <deque> using namespace std; struct info{ int n,pos.原创 2020-08-02 22:08:09 · 97 阅读 · 0 评论 -
落谷P1886(滑动窗口)
滑动窗口 思路 做法很多种,线段树,RMQ,单调队列。题意写的很明白,但是没有上述三种手段是无法暴力突破的,也算是单调队列的入门题了吧,单调队列的思想如下。 无论是单调递减队列还是单调递增队列头部一定是最小或者最大的。 给读入的每一个数字按顺序编号,由于每连续的K个中求最大和最小那么每次只维护前K个序列是单调队列的核心所在。一旦头部元素不在当前的连续K个范围内那么立即把头部的元素抛掉。 在维护前K个元素的时候, 以单调递减队列为例,如果当前元素的值比当前单调队列里最后一个元素要小,那么需要将队原创 2020-08-02 22:03:44 · 135 阅读 · 0 评论