社区讨论
qtbg
P1886【模板】单调队列 / 滑动窗口参与者 5已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mkhp364q
- 此快照首次捕获于
- 2026/01/17 10:35 上个月
- 此快照最后确认于
- 2026/01/19 19:15 上个月
0分,机房满分的,不知道哪里错了
CPP#include<bits/stdc++.h>
using namespace std;
deque<int> x;//x最大y最小
deque<int> y;
int main() {
freopen("window.in","r",stdin);
freopen("window.out","w",stdout);
int s[1000010];
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){
scanf("%d",&s[i]);
}
for(int i=1;i<=n;i++){
while(!y.empty()&&s[y.back()]>=s[i]){
y.pop_back();
}
y.push_back(i);
while(!y.empty()&&y.front()<=i-k){
y.pop_front();
}
if(i>=k){
printf("%d ",s[y.front()]);
}
}
cout<<endl;
for(int i=1;i<=n;i++){
while(!x.empty()&&s[x.back()]<=s[i]){
x.pop_back();
}
x.push_back(i);
while(!x.empty()&&x.front()<=i-k){
x.pop_front();
}
if(i>=k){
printf("%d ",s[x.front()]);
}
}
return 0;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...