[第1章 1.2t5] 良好的感觉
113 字
1 分钟
[第1章 1.2t5] 良好的感觉
//单调栈问题注意2个stack与a[n]哨兵//前一个确保top可访问,并且初始位置可被计算//第二个确保最后全部位置都被清算,这里设计的很棒//注意要在本轮res计算完成后push#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll n; cin>>n; vector<ll> a(n+2,0),sum(n+2,0),res(n+2,0); for(ll i=1;i<=n;i++)cin>>a[i]; n++; stack<ll> st; st.push(0); ll ans=0; for(ll i=1;i<=n;i++){ sum[i]=sum[i-1]+a[i]; while(!st.empty()&&a[st.top()]>a[i]){ ll tp=st.top(); st.pop(); res[tp]+=(sum[i-1]-sum[tp]); } res[i]=(sum[i]-sum[st.top()]); st.push(i); } for(ll i=1;i<=n;i++){ ans=max(ans,res[i]*a[i]); } cout<<ans<<endl; return 0;}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
[第2章 2.2e1] Palindromes
算法竞赛2026-06-27
2
[第2章 2.2t1] Subsequence
算法竞赛2026-06-27
3
[第1章 1.3t5] 表达式的转换
算法竞赛2026-06-26
4
[第1章 1.2t2] 扫描
算法竞赛2026-06-26
5
[第1章 1.4t8] 荷马史诗
算法竞赛2026-06-26
随机文章随机推荐





