Codeforces Round #253 (Div. 2) E. Artem and Array (思维)
来源:互联网 发布:幼儿园 知乎 编辑:程序博客网 时间:2024/05/21 17:39
题意:
给n个数,每次删除一个数,可以加上左右两边相邻数中较小数的值,如果左或右缺少相邻值,
则加上0。问他通过这种操作最大能得到的值。
算法:
思想参考的是点击打开链接
首先,如果是左右两个数均不比中间的数小(有一侧大于,一侧相等也可以),那么可以直接取中间的数,权值加上左右两侧的最小值,这样操作完成后,得到的数组,递增,递减,先增后减,最大的两个数是紧挨着的,一定取不到,能取到的是除去最大的两个数的其他所有的和
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#define maxn 500100using namespace std;typedef long long ll;ll p[maxn];int n;int main(){ ll x,ans; while(scanf("%d",&n)!=EOF) { int top = -1; ans = 0; for(int i=1;i<=n;i++) { scanf("%I64d",&x); while(top>=1 && p[top-1]>=p[top] && x>=p[top]) { ans+=min(p[top-1],x); top--; } p[++top] = x; } sort(p,p+(top+1)); for(int i=0;i<top-1;i++) ans+=p[i]; printf("%I64d\n",ans); } return 0;}
0 0
- Codeforces Round #253 (Div. 2) E. Artem and Array (思维)
- [2-SAT] Codeforces 668E #348 (VK Cup 2016 Round 2, Div. 1 Edition) E. Little Artem and 2-SAT
- Codeforces Round #373 (Div. 2) E. Sasha and Array
- Codeforces Round #373 (Div. 2) E. Sasha and Array
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) E. Little Artem and Time Machine 树状数组
- Codeforces Round #348 (div 2) A. Little Artem and Presents
- Codeforces Round #348 (div 2) C. Little Artem and Matrix
- Codeforces Round #210 (Div. 2) C. Levko and Array Recovery && Codeforces 360 A 详解(思维+维护理论值)
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition)-A. Little Artem and Presents(模拟)
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition)-B. Little Artem and Grasshopper(模拟)
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) D. Little Artem and Dance
- Codeforces Round #261(Div 2) E Pashmak and Graph(图中严格递增的最长路径、思维)
- Codeforces Round #394 (Div. 2)E. Dasha and Puzzle【思维+Dfs构造】
- E. Vanya and Brackets(Codeforces Round #308 (Div. 2))
- Codeforces Round #390(Div. 2)A. Lesha and array splitting【思维】
- Codeforces Round #210 (Div. 1) B. Levko and Array(dp 思维)
- Codeforces Round 331 (Div 2)BWilbur and Array(贪心)
- Codeforces Round #373 (Div. 2) E. Sasha and Array 线段树维护矩阵
- Windows界面——使用Custom Draw优雅的实现ListCtrl的重绘
- Android开发(八) Android 开发常用代码片段
- Android 下拉刷新框架实现
- 编译安装nginx
- Oracle-sqlplus导入sql文件
- Codeforces Round #253 (Div. 2) E. Artem and Array (思维)
- Swing之菜单条
- java对象初始化顺序
- ubuntu 12.04 两个网卡的桥接
- TCP与UDP的简单发送与实现(socket)
- CSS demo:flaot & clear float
- 链表的基本操作
- 功能强大的ShellExecute
- 绝对路径与相对路径