![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调队列
youthinkwu
这个作者很懒,什么都没留下…
展开
-
POJ 2823 Sliding Window
题意:给出一列数字,给出一个区间,区间会向右移动,问区间从一头移动到另一头,这个过程中区间内的最大值和最小值。 解法:单调队列#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;#define maxn 1000010struct node{原创 2015-02-18 16:24:09 · 200 阅读 · 0 评论 -
HDU 3415 Max Sum of Max-K-sub-sequence
题意:给出一个有N个数字(-1000~1000,N<=10^5)的环状序列,让你求一个和最大的连续子序列,长度小于等于K。 对问题进行一下转化:令sum[i]=n[1]+n[2]+…+n[i];则该问题转化为:找最大的(sum[i]-sum[j])(i-j<=k),这需要从sum[i-1]~sum[i-k]中选择一个最小值作为j。所以,该问题又转化成了从一个区间中选择一个极值的问题。环状的解决方法原创 2015-02-18 16:35:42 · 262 阅读 · 0 评论 -
HDU 3530 Subsequence
大意:给出一列数字,以及m和k,求一个最长的序列,使得m<=max-min<=k.求这个最长序列的长度。 做法:单调队列维护最大最小值。#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;#define maxn 1000010struct node原创 2015-02-18 16:59:58 · 243 阅读 · 0 评论