社区讨论
单调队列72pts求调
P1440求m区间内的最小值参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhjae9cg
- 此快照首次捕获于
- 2025/11/03 23:20 4 个月前
- 此快照最后确认于
- 2025/11/03 23:20 4 个月前
CPP
#include<bits/stdc++.h>
int n,m,a[2000000],q[2000000],head=1,tail=0;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++){
printf("%d\n",a[q[head]]);
if(i-q[head]+1>m && head<=tail) head++;
while(a[i]<a[q[tail]] && head<=tail) tail--;
q[++tail]=i;
}
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...