单调队列求调
查看原帖
单调队列求调
758125
xiaobai0123楼主2022/11/23 21:37
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[1000];
deque<int>que;
int main(){
    scanf("%d %d",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
        while(!que.empty()&&a[que.back()]<a[i])que.pop_back();
        que.push_back(i);
        if(i>=m){
            while(!que.empty()&&que.front()<=i-m)que.pop_front();
            printf("%d ",a[que.front()]);
        }
    }
    puts("");
    
    return 0;
}

2022/11/23 21:37
加载中...