今天早上找一道题的bug,还是找不出来,下午刷了几道水题,晚上准备回家的事,

然后本来想打CF的,一看,数学场,不打了。

这道题的题意:

给出一个序列,每次你可以从这个序列里面选择一个数ak,删除,然后你的得分+ak,

代价是序列里面值为ak+1,ak-1的元素都删除

问:你能得到的最大得分是多少

思路:

你若删除了一个值为a的数,你的得分就是a*序列里面a的个数

因为a+1和a-1都被删除了,则其余的a不会被a+1,a-1这种情况删除了,你一定可以得到所有a的分数

所以这道题就是:在序列里面选择一些数值,你的得分+数值*该值出现的个数,并且,

数值+1和数值-1的数你就不能选了。

num[i]表示值i出现的次数。

_max表示出现的最大的值

dp[i][0]:表示从值1选择到i,如果不选择值i,可以得到的最大分数

dp[i][1]:表示从值1选择到值i,如果选择了值i,可以得到的最大分数。

注意:

1.这道题最后的结果要long long

2.小心中间过程溢出,我就是这个贡献了2个wa

3.CF的long long 要用cout输出

 #include<cstdio>
#include<cstring>
#include<iostream> using namespace std;
#define LL long long
const int maxn=1e5+; inline LL max(LL x,LL y)
{
return x>y?x:y;
} int a[maxn];
LL dp[maxn][]; int main()
{
int n;
scanf("%d",&n);
int _max=-;
memset(a,,sizeof a);
for(int i=;i<=n;i++)
{
int u;
scanf("%d",&u);
a[u]++;
if(u>_max)
_max=u;
} memset(dp,,sizeof dp);
for(int i=;i<=_max;i++)
{
dp[i][]=dp[i-][]+(LL)a[i]*i;
dp[i][]=max(dp[i-][],dp[i-][]);
} cout<<max(dp[_max][],dp[_max][])<<endl; return ;
}

CF 445A 简单DP的更多相关文章

  1. HDU 1087 简单dp,求递增子序列使和最大

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  2. Codeforces Round #260 (Div. 1) A. Boredom (简单dp)

    题目链接:http://codeforces.com/problemset/problem/455/A 给你n个数,要是其中取一个大小为x的数,那x+1和x-1都不能取了,问你最后取完最大的和是多少. ...

  3. codeforces Gym 100500H A. Potion of Immortality 简单DP

    Problem H. ICPC QuestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/a ...

  4. 简单dp --- HDU1248寒冰王座

    题目链接 这道题也是简单dp里面的一种经典类型,递推式就是dp[i] = min(dp[i-150], dp[i-200], dp[i-350]) 代码如下: #include<iostream ...

  5. poj2385 简单DP

    J - 简单dp Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     64bit ...

  6. hdu1087 简单DP

    I - 简单dp 例题扩展 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     ...

  7. poj 1157 LITTLE SHOP_简单dp

    题意:给你n种花,m个盆,花盆是有顺序的,每种花只能插一个花盘i,下一种花的只能插i<j的花盘,现在给出价值,求最大价值 简单dp #include <iostream> #incl ...

  8. hdu 2471 简单DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2571 简单dp, dp[n][m] +=(  dp[n-1][m],dp[n][m-1],d[i][k ...

  9. Codeforces 41D Pawn 简单dp

    题目链接:点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵,每一个位置由 0-9的一个整数表示 问: 从最后一行開始向上走到第一行使得路径上的和 % (k+1) == 0 每一个格子仅仅 ...

随机推荐

  1. 论文笔记之:DeepCAMP: Deep Convolutional Action & Attribute Mid-Level Patterns

    DeepCAMP: Deep Convolutional Action & Attribute Mid-Level Patterns CVPR 2016 本文提出一种 分割图像 patch 的 ...

  2. Unity代码热更新方案 JSBinding + SharpKit 首页

    目前Unity的代码更新方案有很多,主要以lua为主. JSBinding + SharpKit 是一种新的技术,他做了两件事情: JSBinding将C#导出到 JavaScript (引擎是 Mo ...

  3. CentOS6.4-RMAN定时任务备份 on 11GR2

    1.rman备份脚本位置: /home/oracle ./scripts/ ./bin                    -----存放rman脚本 ./log                   ...

  4. LINQ(LINQ to DataSet)

    http://www.cnblogs.com/SkySoot/archive/2012/08/21/2649471.html DataTable.Select()方法使用和 SQL 相似的过滤语法从 ...

  5. vb6异步ADO操作

    Private withevents M_Conn as adodb.connection Private CmdFinished as boolean sub somesub AdoCmd.Exec ...

  6. Python Queue实现生产与消费

    Python Queue模块详解 from:https://blog.linuxeye.com/334.html Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块 ...

  7. 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符

    正常URL: http://localhost:16990/GoodsOrder/OrderRevoke.aspx??6G5lFi6xuoiLDhfOOOIkBYwy8RGpkfuza2gLlJrlT ...

  8. js和css内联外联注意事项

    简单说:这两个问题其实是同一个问题,但是网上找了好久也找不到方法,外联的js和css文件里不能有任何HTML的标记注释,一旦有,浏览器就疯了!一去掉就好了!!! 问题:起因是网上看到一个css的表格样 ...

  9. mongoDB 下载/安装/客户端笔记

    1.下载: https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-3.0.3.zip 2.安装 1.解压mongodb-win32-x86 64- ...

  10. 基于LBS的地理位置附近的搜索以及由近及远的排序

    Nosql学习之Redis资料(一) http://redis.io/download 目前基于LBS地理位置的搜索已经应用非常广了,的确是个很方便的东西. 我们做程序的就是要考虑如何通过这些功能,来 ...