码迷,mamicode.com
首页 >  
搜索关键字:hdu3530    ( 12个结果
HDU3530 Subsequence (单调队列)
维护两个单调队列一个递增一个递减 如果两个差值大于l,那么把位置小的往后移,因为这样才能保证合法,不然比如最大值在1处,最小值在2处,现在我们移动最小值是不可能的,因为最小值始终在最大值和右端点的中间,无法移动,只能移动最大值,那么注意的是,如果移动后合法,那么当前的有效区间跟移动后在哪无关,其实是 ...
分类:其他好文   时间:2020-03-14 21:48:11    阅读次数:46
hdu3530 双单调队列的维护
单调队列有部分堆的功能,但其只能维护给定区间中比v大的值或者比v小的值,且其一般存储元素的下标。 思路:两个单调队列维护最大值与最小值的下标,如果区间的最大值最小值之差大于给定范围,则选择队首靠左的删去,并记录删去元素的下标,然后维护最大区间长度即可 注意有两个范围,第二个范围不能忽略 ...
分类:其他好文   时间:2018-12-18 22:46:06    阅读次数:243
单调队列总结
单调队列 就是保持队列中的元素始终保持单调性,这个数据结构就是单调队列 它的作用就是维护最值、求第一个比i小(大)的数的下标等等 还有个单调栈来着,不过我们可以用一个双端队列就足够了 如果要维护最大值,就用单调递减队列,反之,用递增队列 1、hdu3530 Subsequence 单调队列入门题 这 ...
分类:其他好文   时间:2018-08-31 00:34:59    阅读次数:211
hdu3530(单调队列)
Subsequence 题意: 给出一个序列,要求从中找到一个最长子区间,满足m=<最大值-最小值<=k,求最长子区间的长度是多少? 分析: 枚举这个最长子区间的右边界,然后在这个基础上,找到满足上述条件的最左可行区间,考虑用两个单调队列维护区间最大值和最小值,通过调节子区间的最大值和最小值,找到左 ...
分类:其他好文   时间:2018-07-28 16:42:37    阅读次数:204
[hdu3530]Subsequence (单调队列)
题意:求在一段序列中满足m<=max-min<=k的最大长度。 解题关键:单调队列+dp,维护前缀序列的最大最小值,一旦大于k,则移动左端点,取max即可。 ...
分类:其他好文   时间:2017-10-09 09:55:38    阅读次数:122
Subsequence(hdu3530)
Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6141 Accepted Submission(s): 2041 Pro ...
分类:其他好文   时间:2016-10-07 01:47:54    阅读次数:150
hdu3530 Subsequence 单调队列
// hdu3530 Subsequence 单调队列 // 题目大意:找到一个最大的子串,使得子串区间内最大值和最小值的差 // 在low和up范围内,串的规模10w。 // 解题思路: // 单调队列,单调队列可以保留i位置之前的最大值和最小值的下标,有了这些 // 则,每次我们比较两个队列的队头,看差值是否大于up,(因为它是到i位置最大 // ...
分类:其他好文   时间:2015-07-25 16:53:45    阅读次数:144
HDU3530 Subsequence(单调队列)
题意是说给出一个序列,现在要求出这个序列的一个最长子区间,要求子区间的最大值与最小值的差在[m, k]范围内,求区间长度做法是维护两个队列,一个维护到当前位置的最大值,一个维护最小值,然后计算当前节点i作为右端点的最常区间长度,那么扫描两个队列,维持单调性。然后比较两个队列头的差值,1.如果差值满足...
分类:其他好文   时间:2015-07-20 12:31:19    阅读次数:134
hdu3530 Subsequence 单调队列
题目:在一个序列中找一个最长子串,使得子串的m 维护一个递减的单调队列q1(队首为当前最大),同时维护一个递增的单调队列q2(队首为当前最小),控制最大减最小 小于等于k , 若最大减最小大于等于m,则更新答案。 代码: #include #include #include #include #include using namespace std; const int N = 1e5+10...
分类:其他好文   时间:2015-06-19 11:58:57    阅读次数:114
HDU3530 子序列
题目大意:给出一串长度为n的整数串,求最长的一个连续子序列,满足该序列中最大的元素与最小的元素之差大于等于m,并且小于等于k。n最大值,则当前区间的上限变为a[i],下限在范围[a[i]-m,a[i]-k]之内。在递增的单调队列中不断的删除队头,直到找到一个在范围[a[i]-m,a[i]-k]内的队...
分类:其他好文   时间:2015-06-18 13:25:01    阅读次数:120
12条   1 2 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!