ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

P1886 【模板】单调队列 / 滑动窗口

P1886 【模板】单调队列 / 滑动窗口
点击查看代码
#include<bits/stdc++.h>
using namespace std;const int N=1e6+10;
int k,n;
int a[N],q[N];
int hh=0,tt=-1;int main()
{ios::sync_with_stdio(0),cin.tie(0);cin>>n>>k;for(int i=0;i<n;i++) cin>>a[i];for(int i=0;i<n;i++){if(tt>=hh&&q[hh]<i-k+1) hh++;while(tt>=hh&&a[q[tt]]>=a[i]) tt--;q[++tt]=i;if(i-k+1>=0) cout<<a[q[hh]]<<' ';}cout<<endl;hh=0,tt=-1;for(int i=0;i<n;i++){if(tt>=hh&&q[hh]<i-k+1) hh++;while(tt>=hh&&a[q[tt]]<=a[i]) tt--;q[++tt]=i;if(i-k+1>=0) cout<<a[q[hh]]<<' ';}return 0;
}
返回列表