题解
2025-08-05 13:24:24
发布于:浙江
3阅读
0回复
0点赞
单调队列【模板】套用
#include<bits/stdc++.h>
using namespace std;
struct node{
int val,id;
};
int main(){
int n,k;
cin>>n>>k;
vector<int>vec(n+1);
for(int i=1;i<=n;i++) cin>>vec[i];
deque<node>dq;
for(int i=1;i<=n;i++){
int x=vec[i];
while(dq.size()){
int id=dq.front().id;
if(id<i-k+1) dq.pop_front();
else break;
}
while(dq.size()){
int val=dq.back().val;
if(val<=x) dq.pop_back();
else break;
}
dq.push_back({x,i});
if(i>=k){
cout<<dq.front().val<<endl;
}
}
//(感觉还是有点吃操作)
这里空空如也
有帮助,赞一个