码迷,mamicode.com
首页 > 其他好文 > 详细

单调队列

时间:2017-09-10 18:57:34      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:pac   dig   队列   for   getch   clu   head   c++   log   

#include <bits/stdc++.h>
using namespace std;
void qin(int &aaa){
char c=getchar();
int ans=0,flag=1;
    while(!isdigit(c)){
        if(c==‘-‘)flag=-flag;c=getchar();
    }
    while(isdigit(c))ans=ans*10+c-‘0‘,c=getchar();
    aaa=ans*flag;
}
void qout(int aaa,char c){
char s[11]={c};
int n=0,flag=1;
    if(aaa<0){
        flag=0;
        aaa=-aaa;
    }
    while(aaa>0){
        s[++n]=aaa%10+‘0‘;
        aaa/=10;
    }
    if(!flag)putchar(‘-‘);
    for(int i=n;~i;--i)putchar(s[i]);
}
int q[1000005],a[1000005],head=1,tail=1;
int main(){
int n,m;
    qin(n);qin(m);
    for(int i=1;i<=n;++i)
        qin(a[i]);
    for(int i=1;i<=n;++i)q[i]=2147483647;
    for(int i=1;i<=m;++i){
        while(head<=tail&&a[i]<q[tail])tail--;
        q[++tail]=a[i];
    }
    qout(q[head],‘ ‘);
    for(int i=m+1;i<=n;++i){
        if(a[i-m]==q[head])head++;
        while(head<=tail&&a[i]<q[tail])tail--;
        q[++tail]=a[i];
        qout(q[head],‘ ‘);
    }
    return 0;
}

  

单调队列

标签:pac   dig   队列   for   getch   clu   head   c++   log   

原文地址:http://www.cnblogs.com/HC-LittleJian/p/7501622.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!