10分求助

P5788 【模板】单调栈

@[Niao_niao](/user/199475) 感觉ans[i-v.size()]有点问题? 这样似乎不能算出上一个数的下标 建议开一个数组存a v存权值在a中的下标 直接访问不容易错 这是一份按照以上思路修改的代码 ```cpp #include<bits/stdc++.h> using namespace std; int n; int a[3000011]; vector<int> v; vector<int> ans; int main(){ cin>>n; ans.resize(n + 1, 0); a[0] = INT_MAX; v.push_back(0); for(int i=1;i<=n;i++){ cin >> a[i]; while (a[v.back()]<a[i]){ ans[v.back()]=i; v.pop_back(); } v.push_back(i); } for(int i=1;i<=n;i++){ cout<<ans[i]<<' '; } return 0; } ```
by silhouettel @ 2024-06-24 21:03:33


@[silhouettel](/user/772661) 一样的,改了之后调试也都是10分。
by Niao_niao @ 2024-06-25 10:06:10


@[Niao_niao](/user/199475) 我提供的这份代码是可以ac的
by silhouettel @ 2024-06-25 15:41:52


|