社区讨论

神秘事件

P5788【模板】单调栈参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mdebh989
此快照首次捕获于
2025/07/22 17:13
8 个月前
此快照最后确认于
2025/11/04 03:56
4 个月前
查看原帖
感觉我的代码和几个题解都不太一样,但是还是过了,就想着发过来问一下:
CPP
#include<bits/stdc++.h>
using namespace std;

int a[3000010];
int st[3000010];
int b[3000010],l=0;
int v[3000010];
int main(){
	int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=n;i>0;i--){
        while(a[i]>=st[l] && l>0){
            l--;
        }
        if(l==0){
            b[i]=0;
        }
        b[i]=v[l];
        st[++l]=a[i];
        v[l]=i;
    }
    for(int i=1;i<=n;i++){
        cout<<b[i]<<' ';
    }
    cout<<'\n';
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...