洛谷P2032 扫描

题目

传送门

题意

我们通过仔细到不能到仔细的大眼观察法可以推得这不是一个单调队列的模板题吗?

不懂单调队列?

传送门

高清无码代码

#include<bits/stdc++.h>
using namespace std;
int n,a[1000001],q[1000001],k; 
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>a[i];
	int head=0,tail=0;
	for(int i=1;i<=n;i++){
		while(head<tail&&q[head]+k<=i){
			head++;//去除过期的队头
		}
		while(head<tail&&a[q[tail-1]]<a[i]){
			tail--;//保证单调再添加
		}
        
		q[tail]=i;
		tail++;
		if(i>=k)cout<<a[q[head]]<<endl;//被覆盖住的数字中最大的数
	} 
	return 0;
} 
posted @ 2026-08-02 23:34  陈晨2011  阅读(5)  评论(0)    收藏  举报