单调队列,我用deque维护。这道题不难写,我第二次写单调队列,1次AC。-----------------------------------------------------------------------------------#include#include#include#defin...
题目链接:http://poj.org/problem?id=2823#include#include#define M 1000001using namespace std;int n,k;int a[M];int q[M];int p[M];void get_min(){ int head...
分类:
其他好文 时间:
2015-03-02 16:16:47
阅读次数:
193
#includeusing namespace std;#define N 1000001int n,K,a[N],head=1,tail=1,q[N],ans[N];int main(){ scanf("%d%d",&n,&K); for(int i=1;i=head) --tail; q[...
POJ2823 Sliding Window (单调队列的基本应用)...
题目大意:给你一个数字序列,然后给一个从左到右滑动的窗口,窗口的长度是k,一次向右移动一格,每次输出这个窗口中最大的数和最小的数,问最后输出的序列是什么.思路:维护两个单调队列,一个维护最大值,一个维护最小值.因为窗口移动的方向是一直朝一个方向的,所以可以用单调队列维护这个最大值,队列中记录的是最大...
分类:
其他好文 时间:
2014-10-16 16:41:12
阅读次数:
172
传送门Sliding WindowTime Limit: 12000MSMemory Limit: 65536KCase Time Limit: 5000MSDescriptionAn array of size n ≤ 106 is given to you. There is a sliding...
题目:给出n个数(n 2 #include 3 #include 4 using namespace std; 5 const int maxn = 1000005; 6 struct node 7 { 8 int value; 9 int index;10 }que[maxn]...
分类:
其他好文 时间:
2014-08-24 23:44:23
阅读次数:
330
POJ2823Sliding WindowTime Limit: 12000MSMemory Limit: 65536KTotal Submissions: 38342Accepted: 11359Case Time Limit: 5000MSDescriptionAn array of size ...
求连续的k个中最大最小值,k是滑动的,每次滑动一个
用双端队列维护可能的答案值
如果要求最小值,则维护一个单调递增的序列
对一开始的前k个,新加入的如果比队尾的小,则弹出队尾的,直到新加入的比队尾大,加入队尾
从第k+1个到最后一个,按照上述规则,压入新数,然后弹出队首元素(满足队首元素对应原来序列的位置必须在视窗内,否则,继续弹出下一个)
#include
#include
#in...
ACM 单调队列 Sliding Window poj2823 单调队列详解...