BZOJ1345 [Baltic2007]序列问题Sequence
2014-11-06 15:20
253 查看
什么ST表啊,单调栈啊都太神了。。。蒟蒻:不会哦~
于是只好使用蒟蒻专属做法:乱搞。。。
发现:当前最大的一个数一定要到最后再合并(众神犇:废话。。。)
不考虑这个最大数
若当前"最大数"在中间,则原来的一个数列变成两个。。。可知答案就是:最大数 * 2 + 两边答案和
若当前"最大数"在数列最旁边,还是只有一个数列,故答案是:最大数 + 新数列的答案
现在再倒回去看,我们发现若一个数列中相邻两个元素 A, B 有 A < B
则必定有一个时刻变成A为最大数,则ans += A
于是做法非常简单:每次只要比较相邻两个数,把大的加到答案里去即可。
View Code
(p.s. Rank 12,为毛线啊。。。已经不能再优化了的说。。。)
于是只好使用蒟蒻专属做法:乱搞。。。
发现:当前最大的一个数一定要到最后再合并(众神犇:废话。。。)
不考虑这个最大数
若当前"最大数"在中间,则原来的一个数列变成两个。。。可知答案就是:最大数 * 2 + 两边答案和
若当前"最大数"在数列最旁边,还是只有一个数列,故答案是:最大数 + 新数列的答案
现在再倒回去看,我们发现若一个数列中相邻两个元素 A, B 有 A < B
则必定有一个时刻变成A为最大数,则ans += A
于是做法非常简单:每次只要比较相邻两个数,把大的加到答案里去即可。
/************************************************************** Problem: 1345 User: rausen Language: C++ Result: Accepted Time:916 ms Memory:804 kb ****************************************************************/ #include <cstdio> #include <algorithm> using namespace std; long long ans; int n; inline int read(){ int x = 0, sgn = 1; char ch = getchar(); while (ch < '0' || ch > '9'){ if (ch == '-') sgn = -1; ch = getchar(); } while (ch >= '0' && ch <= '9'){ x = x * 10 + ch - '0'; ch = getchar(); } return sgn * x; } int main(){ n = read(); int i, X, Y; Y = read(); for (i = 2; i <= n; ++i){ X = read(); ans += max(X, Y); Y = X; } printf("%lld\n", ans); return 0; }
View Code
(p.s. Rank 12,为毛线啊。。。已经不能再优化了的说。。。)
相关文章推荐
- 【bzoj1345】[Baltic2007]序列问题Sequence 单调栈
- [单调栈] BZOJ 1345 [Baltic2007]序列问题Sequence
- [BZOJ 1345][Baltic2007]序列问题Sequence:单调栈
- [BZOJ1345][Baltic2007]序列问题Sequence(单调栈)
- 【BZOJ1345】[Baltic2007]序列问题Sequence 贪心+单调栈
- 【Baltic2007】【BZOJ1345】序列问题Sequence
- bzoj 1345: [Baltic2007]序列问题Sequence 排序+贪心
- bzoj1345: [Baltic2007]序列问题Sequence
- BZOJ1345: [Baltic2007]序列问题Sequence
- bzoj 1345: [Baltic2007]序列问题Sequence(单调栈)
- 【bzoj1345】[Baltic2007]序列问题Sequence
- BZOJ1345: [Baltic2007]序列问题Sequence
- [BZOJ1345][Baltic2007]序列问题Sequence(单调栈)
- [BZOJ1345][Baltic2007]序列问题Sequence(单调栈)
- BZOJ_1345_[Baltic2007]序列问题Sequence_单调栈
- 【BZOJ 1345】 [Baltic2007]序列问题Sequence
- bzoj1345 [Baltic2007]序列问题Sequence 单调栈
- 【bzoj 1345】 [Baltic2007]序列问题Sequence
- 【BZOJ】【P1345】【Baltic2007】【序列问题Sequence】【ST表】
- BZOJ 1345: [Baltic2007]序列问题Sequence