Codeforces Round #260 (Div. 1) 455 A. Boredom (DP)
题目链接:http://codeforces.com/problemset/problem/455/A
1 second
256 megabytes
standard input
standard output
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.
2
1 2
2
3
1 2 3
4
9
1 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.
题意:
给定一个序列。每次从序列中选出一个数ak,获得ak的得分。同一时候删除序列中全部的ak−1,ak+1,
求最大得分的值。
思路:
存下每一个数的个数放在c中。消除一个数i,会获得c[i]*i的值(由于能够消除c[i]次),
假设从0的位置開始向右消去,那么。消除数i时。i-1可能选择了消除。也可能没有,
假设消除了i-1,那么i值就已经不存在,dp[i] = dp[i-1]。
假设没有被消除,那么dp[i] = dp[i-2]+ c[i]*i。
代码例如以下:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define LL __int64
const int MAXN = 100017;
LL c[MAXN], dp[MAXN];
void init()
{
memset(dp,0,sizeof(dp));
memset(c,0,sizeof(c));
}
int main()
{
LL n;
LL tt;
int i, j;
while(~scanf("%I64d",&n))
{
init();
int maxx = 0;
for(i = 1; i <= n; i++)
{
scanf("%I64d",&tt);
if(tt > maxx)
maxx = tt;
c[tt]++;
}
dp[0] = 0, dp[1] = c[1];
for(i = 2; i <= maxx; i++)
{
dp[i] = max(dp[i-1],dp[i-2]+c[i]*i);
}
printf("%I64d\n",dp[maxx]);
}
return 0;
}
Codeforces Round #260 (Div. 1) 455 A. Boredom (DP)的更多相关文章
- Codeforces Round #367 (Div. 2) C. Hard problem(DP)
Hard problem 题目链接: http://codeforces.com/contest/706/problem/C Description Vasiliy is fond of solvin ...
- codeforces #260 DIV 2 C题Boredom(DP)
题目地址:http://codeforces.com/contest/456/problem/C 脑残了. .DP仅仅DP到了n. . 应该DP到10w+的. . 代码例如以下: #include & ...
- Codeforces Round #369 (Div. 2) C. Coloring Trees(dp)
Coloring Trees Problem Description: ZS the Coder and Chris the Baboon has arrived at Udayland! They ...
- Codeforces Round #245 (Div. 1) B. Working out (dp)
题目:http://codeforces.com/problemset/problem/429/B 第一个人初始位置在(1,1),他必须走到(n,m)只能往下或者往右 第二个人初始位置在(n,1),他 ...
- Codeforces Round #349 (Div. 2) C. Reberland Linguistics (DP)
C. Reberland Linguistics time limit per test 1 second memory limit per test 256 megabytes input stan ...
- Codeforces Round #369 (Div. 2) C. Coloring Trees (DP)
C. Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Codeforces Round #552 (Div. 3) F. Shovels Shop(dp)
题目链接 大意:给你n个物品和m种优惠方式,让你买k种,问最少多少钱. 思路:考虑dpdpdp,dp[x]dp[x]dp[x]表示买xxx种物品的最少花费,然后遍历mmm种优惠方式就行转移就好了. # ...
- Codeforces Round #367 (Div. 2) B. Interesting drink (模拟)
Interesting drink 题目链接: http://codeforces.com/contest/706/problem/B Description Vasiliy likes to res ...
- Codeforces Round #368 (Div. 2) C. Pythagorean Triples(数学)
Pythagorean Triples 题目链接: http://codeforces.com/contest/707/problem/C Description Katya studies in a ...
随机推荐
- 南海区行政审批管理系统接口规范v0.3(规划) 2.业务申报API 2.1.businessApply【业务申报】
{"v_interface":"2015987654327","c_project":"NH09A102"," ...
- H3C路由器查看序列号信息
H3C MSR系列的路由器,查看本机的MAC地址.序列号信息和生产日期信息等可以使用dis device manuinfo 命令查看,以下是执行结果: slot 0 DEVICE_NAME ...
- Entity Framework 的懒加载、预先加载、显示加载
1.新建两个实体,一个班级有多个学生 public class Student { public int StudentId { get; set; } public string StudentNa ...
- SQLServer int转float
例: select 2/4 会得到0 改为 select 2/4.0 则会得到0.500000 也同时达到了int转float的效果
- Android + Eclipse + NDK + cygwin配制
以前做NDK开发时留下来的笔记,希望对后继开发人员有所帮助,在开放给大家使用,有不对的地方请留,扔砖头都可以的. 为了方便在Win32下开发android C++ 程序,我们作了如下配制:1.Andr ...
- 我的wordpress在Nginx的配置
lnmp生成过程 You select the exist rewrite rule:/usr/local/nginx/conf/wordpress.conf Gracefully shutting ...
- PCL:Ubuntu下安装配置PCL
一:安装PCL 依据官网介绍:http://www.pointclouds.org/downloads/linux.html Ubuntu We currently support all Ubunt ...
- 关于如何成为高级java程序员
今日,对如何进一步提升java.成为一个高级的程序员有了兴趣,在网上看到一篇回答,感觉不错,记下来 总结了以下六点:一.JAVA基础 要想成为高级Java程序员,Java是一定要学习的.要成为高级程序 ...
- python tips:类与实例的属性问题
实例是具象化的类,它可以作为类访问所有静态绑定到类上的属性,包括类变量与方法,也可以作为实例访问动态绑定到实例上的属性. 实例1: class A: work = list("hello&q ...
- Flex元素布局规则总结,以及布局和容器
一.Flex中的元素分类从功能层面可以把Flex中的元素分为组件(Components)和容器(Containers)两大类:组件 - 是指那类具有明确交互或数据展示功能的元素,例如Button.Ch ...