单调队列(数组优化?)P1886

class Deque{
public:
int a[maxn];
int pl=1,pr=0;
}Deq;
int a[maxn];
int n,k;
void solve(){
Deq.pl=1;Deq.pr=0;
for(int i=1;i<=n;i++){
while(Deq.pr>=Deq.pl&&a[Deq.a[Deq.pr]]<a[i])Deq.pr--;//弹尾
Deq.a[++Deq.pr]=i;//入尾
if(Deq.a[Deq.pl]+k<=i)Deq.pl++;//弹首
o(a[Deq.a[Deq.pl]]);putchar(' ');
}
putchar('\n');
}
posted @ 2020-10-19 16:56  yesuweiYYYY  阅读(99)  评论(0编辑  收藏  举报