题目:http://codeforces.com/contest/1313/problem/C2 参考:http://codeforces.com/blog/entry/74146 题意:给定n个数 a i a_i ai,要求构造一个序列 b i b_i bi,使得 b i < = a i b_i= a[i]) { st.pop(); } if(st.empty()) r[i] = 1LL*(n-i+1)*a[i]; else r[i] = r[st.top()]+1LL*(st.top()-i)*a[i]; st.push(i); } int pos = 1; ll res = l[1]+r[1]-a[1]; for(int i = 2;i res) { res = l[i]+r[i]-a[i]; pos = i; } } for(int i = pos-1;i >= 1;i--) a[i] = min(a[i],a[i+1]); for(int i = pos+1;i
Skyscrapers (hard version)(1900/单调栈)
关注
打赏
热门博文
立即登录/注册


微信扫码登录