社区讨论

单调队列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 条回复,欢迎继续交流。

正在加载回复...