cf455A Boredom
来源:互联网 发布:垃圾回收器 java 编辑:程序博客网 时间:2024/04/29 06:12
Alex doesn't like boredom. That's why whenever he gets bored, he comes up with games. One long winter evening he came up with a game and decided to play it.
Given a sequence a consisting of n integers. The player can make several steps. In a single step he can choose an element of the sequence (let's denote it ak) and delete it, at that all elements equal to ak + 1 and ak - 1 also must be deleted from the sequence. That step brings ak points to the player.
Alex is a perfectionist, so he decided to get as many points as possible. Help him.
The first line contains integer n (1 ≤ n ≤ 105) that shows how many numbers are in Alex's sequence.
The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 105).
Print a single integer — the maximum number of points that Alex can earn.
21 2
2
31 2 3
4
91 2 1 3 2 2 2 2 3
10
Consider the third test example. At first step we need to choose any element equal to 2. After that step our sequence looks like this [2, 2, 2, 2]. Then we do 4 steps, on each step we choose any element equals to 2. In total we earn 10 points.
low爆了……做div1洋洋得意的5分钟做了A……结果hacked……最后只有重交了A然后rating哗哗的掉
题意是一个序列做删数游戏,如果删去一个x,就还要删掉所有大小是(x+1)、(x-1)的数,这样获得的价值是x,求删完整个序列的最大价值
那么显然如果你要删掉一个数x,那么其他所有大小是x的也要删掉。因为只删一个x、其他x不动,这样显然是不优的
用ans[]保存删去所有大小为x的数能获得的价值
然后f[i][0/1]表示1到i、第i个数取/不取的最大价值
f[i][0]不取可以从第(i-1)个取/不取转移而来
f[i][1]取了只能从第(i-1)个不取转移而来
原来我算f 的时候for只到n……但是应该是到max(a[i])就是无脑100000的……然后hacked
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>#define LL long longusing namespace std;int n,x;LL ans[100010];LL f[100010][2];inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int main(){ n=read(); for (int i=1;i<=n;i++) { x=read(); ans[x]+=x; } for (int i=1;i<=100000;i++) { f[i][0]=max(f[i-1][0],f[i-1][1]); f[i][1]=f[i-1][0]+ans[i]; } printf("%lld",max(f[100000][0],f[100000][1]));}
- cf455A Boredom
- Boredom
- A. Boredom
- A. Boredom
- codeforces455A-Boredom
- Codefroces455A Boredom
- Codeforces Boredom
- Boredom (DP)
- 群体无聊 group boredom
- (CF) 456C - Boredom
- codeforce 20140808 C. Boredom
- codeforces455A Boredom (裸DP)
- codeforces 455A Boredom
- CodeForces 455A Boredom
- 455A Boredom
- 455A - Boredom
- CodeForces 455A - Boredom
- CodeForces 455A Boredom
- Maven的Dependency如何找
- Linux命令:whereis
- BITMAPFILEHEADER、BITMAPINFOHEADER及BMP结构详解
- POJ1007解题报告
- C++联合体转换成C#结构
- cf455A Boredom
- UVALive 4855 Hyper Box
- 数据库复习——结论
- [HDU1812]置换群 Polya定理 等价涂色问题详解
- [水]ZOJ1666
- C++中引用(&)的用法和应用实例
- HDU 4923 - Room and Moor (贪心)
- 数据库的行式存储,列式存储
- 谷歌2012面试题-子串逆序打印