题解
2025-08-05 10:08:39
发布于:上海
10阅读
0回复
0点赞
单调队列还是太吃操作了
#include<iostream>
#include<queue>
using namespace std;
typedef long long ll;
const int N=2e6+5;
ll n,k,a[N];
int main(){
deque<int>q;
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++){
//淘汰
while(q.size() && a[q.back()]<a[i])q.pop_back();
//进入
q.push_back(i);
//老死
if(q.front()==i-k)q.pop_front();
if(i-k>-1)cout<<a[q.front()]<<"\n";
}
return 0;
}
全部评论 1
确实
2025-08-05 来自 上海
0
有帮助,赞一个