转自:http://apps.hi.baidu.com/share/detail/34010558 【单调队列】在解一个序列某个区间段的最值问题,我们可以用到单调队列来解决。 比如poj2823 Sliding Window 就是一个很好的例子:给定一个序列,要求序列中固定长度为k 的区间中的最大值 ...
分类:
其他好文 时间:
2016-07-05 12:06:32
阅读次数:
206
仙人掌。 仙人掌入门题。。不过入门都好难。。。 题解好复杂。。 总体来说,没有环的话,就是一棵树,很好求。 如果有环的话,就找出这个环,用一个单调队列用环上俩个点对更新答案。(如果不用单调队列就O(n^2)超时) #include #include #include using namespace ... ...
分类:
其他好文 时间:
2016-07-01 19:53:28
阅读次数:
154
点击打开链接
题意:给n个数和m,k,问你数列中最长的子序列,其中最大值减去最小值大于等于m小于等于k
思路:想着想着想到尺取去了,写了一半实现不了((/ □ \)),一看单调队列也没怎么练过,大致就只知道单调队列肯定是维护一个什么东西,只能看大神们的思路了,维护了两个队列,一个是以当前结束所构成的递减序列的位置,另一个是以当前结束构成的递增序列的位置,然后每次的最大值减去最小值,如果大于k,...
分类:
其他好文 时间:
2016-06-24 15:14:09
阅读次数:
120
转化:①:子序列和%p→区间求和%p取差+分类讨论,出ri范围②:区间和最大→左端点最小(固定右端点)③:以ri为坐标,i为关键字用单调队列/树状数组求最值 ...
分类:
其他好文 时间:
2016-06-24 10:48:23
阅读次数:
136
对于合法区间的左右端点l,r,显然最左的l随着r增加而不减。 对于最大值和最小值分别维护一个单调队列,如果非法就挪l并出队。 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 #de ...
分类:
其他好文 时间:
2016-06-18 16:44:26
阅读次数:
139
点击打开链接
题意:给个成环的字符串,现在要从一个地方断开这个环,然后可以向左或向右走,在走的过程中C的数量要始终保持大于J的数量,问共有多少个这样的端点
思路:没有思路,参考了大神的思路,大神说这是水题,弱哭~~~~,这里解释一下L和R数组的含义应该就可以自己把代码敲出来了,貌似单调队列考的就是这个呢,L数组保存的是从0到i的最小num值,num为前缀和,这里设C为1,J为-1然后求前缀和,...
分类:
其他好文 时间:
2016-06-16 14:54:13
阅读次数:
143
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1096 有\(n\)个工厂,给出第\(i\)个工厂的到1号工厂的距离\(x[i]\),货物数量\(p[i]\),建设仓库所需花费\(c[i]\). 现在要把所有货物都装入仓库,第\(i\)号工厂的 ...
分类:
其他好文 时间:
2016-06-11 17:29:46
阅读次数:
146
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1010 给出\(n\)和\(l\).有\(n\)个玩具,第\(i\)个玩具的长度是\(c[i]\),要求将玩具分成若干段,从\(i\)到\(j\)分为一段的长度为\(x=j-i+\sum_(k=i ...
分类:
其他好文 时间:
2016-06-11 17:15:09
阅读次数:
169
dp. 首先我们可以看到每个时间段只能往一个方向转移最多t步(t为时间段的长度),所以我们可以按时间段dp。因为这个前后值互不影响,也不用占用这一维空间就可以省去。 然后每个时间段内是一列一列(行) 进行递推。 如果朴素枚举是O(n^2)时间无法承受。所以每列(行)用一个单调队列维护dp,队首放着移... ...
分类:
其他好文 时间:
2016-06-10 19:05:57
阅读次数:
112
单调队列 其实是初二就学的,但是当时只是会做几道例题,没有总结规律,现在看入门经典时突然感觉以前学的时候太不仔细了,漏过很多细节,于是来填(wa)个坑。 先抄几道例题(其实例题都属于“滑动窗口”一栏,但其实思想一样,直接被我归纳为单调队列了) 1.Window 不解释 知道单调队列的应该都知道Win ...
分类:
其他好文 时间:
2016-06-05 20:05:33
阅读次数:
107