单调队列
文章平均质量分 55
Clove_unique
All that you have lost can be won back bit by bit as long as you wish for it.
展开
-
【tyvj1313】烽火传递
悲剧是将人生有价值的东西毁灭给人看。原创 2016-01-12 19:21:38 · 1310 阅读 · 0 评论 -
[BZOJ2442]修剪草坪
什么都无法舍弃的人,什么都无法改变原创 2016-01-09 18:53:43 · 1036 阅读 · 0 评论 -
[BZOJ2096][Poi2010]Pilots(单调队列)
题目描述传送门题解由于满足r是随着l单调的,那么两个指针扫一遍即可。 扫的过程中要判断扩展的r是否合法,可以用单调队列维护处l~r这一段的最大值和最小值,然后随便判断一下。代码#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define N 3000005int k,n,l,r,lmax,rma原创 2016-11-10 23:40:21 · 624 阅读 · 0 评论 -
单调队列 学习笔记
定义按我的理解,单调队列就是一个可以一端进两端出的队列。只能从队尾进但是可以同时从队首和队尾出。用的不是很多,但是在某些情况下会有特殊之处。性质单调队列满足这样一个性质:队内的元素单调,并且队内前面一个元素的位置一定小于后面一个元素的位置(这里的位置是相对于原序列中的位置)。 很容易证明性质的正确性:如果只从队尾入队的话,一定满足前面一个元素的位置一定小于后面一个元素的位置。这样的性质为二分提供了原创 2016-11-10 10:39:13 · 540 阅读 · 0 评论 -
[BZOJ1293][SCOI2009]生日礼物(单调队列)
题目描述传送门题解两个指针扫一遍就行了。代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define N 1000005#define inf 2100000000int n,k,m,x,cnt,l,r,now,ans;struct hp{int c原创 2016-11-10 10:15:41 · 674 阅读 · 0 评论 -
[BZOJ2276][Poi2011]Temperature(单调队列)
题目描述传送门题解本来简简单单的一道题让我写得极其愚蠢。正常的题解是长这样的: 考虑若干个 l – r 区间,如果这几个区间的温度可能不降,min { l } 是可以被取到的,那么只要维护关于l的单调递减队列,保证队头的 l 小等于队尾的 r我的做法: 首先用两个指针,左指针不动,右指针向后移直到不能走为止,统计答案,然后再把左指针向后移。这样的话每一个点最多被左右指针各访问一次,时间复杂度是O原创 2016-11-10 00:04:48 · 687 阅读 · 0 评论 -
[BZOJ3048][Usaco2013 Jan]Cow Lineup(单调队列)
最可笑的假话,总是振振有词。原创 2016-03-31 23:29:54 · 1237 阅读 · 0 评论 -
【poj2823】Sliding Window
左眼沒有見過右眼一面不懂安慰只懂陪它落淚原创 2016-01-06 16:30:03 · 497 阅读 · 0 评论 -
[BZOJ1047][HAOI2007]理想的正方形(单调队列)
题目描述传送门题解由题目可知只有每一部分的最大值和最小值是有价值的。 单调队列只能处理一维的情况,二维的不好处理。那么我们可以考虑一维一维处理,比如说,先做列再做行。 可以将每一列每一个长度为n的区间用单调队列处理出来最大值和最小值,然后缩成一个点。 然后将每一行缩成的那些点每一个长度为n的区间再用单调队列处理出来最大值和最小值,这样就相当于求出了n*n的矩形的最大值和最小值统计答案即可。代码原创 2016-11-10 23:35:36 · 810 阅读 · 0 评论