(寒假CF3)B - 坑坑

题解:dp

Description
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.

Input
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).

Output
Print a single integer — the maximum number of points that Alex can earn.

Sample Input
Input
2
1 2
Output
2
Input
3
1 2 3
Output
4
Input
9
1 2 1 3 2 2 2 2 3
Output
10
Hint
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.

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 using namespace std;
 5 typedef long long LL;
 6 LL dp[100000],num[100000];
 7 int main()
 8 {
 9     int n,i;
10     while(~scanf("%d",&n))
11     {
12     for(i=1;i<=n;i++)
13     {
14         int x;
15         scanf("%d",&x);
16         num[x]++;
17     }
18     for(i=2;i<=n;i++)
19     {
20         dp[i]=max(dp[i-1],dp[i-2]+(LL)num[i]*i);
21     }
22     printf("%lld\n",dp[n]);
23     }
24     return 0;
25 }
时间: 2024-10-12 20:06:07

(寒假CF3)B - 坑坑的相关文章

论后台开发人员中开发前台遇到的坑坑(复名是不是很萌)

小人本后台程序员, 耐何不懂javaScript语言, 谁人不向往未知的明天, 入坑才能挣到钱.(小装一下) 言归正传 所谓的坑坑 坑一.vue中sessionStorage(windows中原生的session Storage) what? sesson对象跟java中httpSession对象是作用类似,在会话创建时开始存在,直到当前会话结束该session消除(注意此会话指的是浏览器的会话) how? 1 // 保存数据到sessionStorage 2 sessionStorage.se

(寒假CF3)坑坑坑

题意 :求期望 题解 :找规律,列举几个,然后找到规律. 坑点:要简化,不简化数字一大就wa了 Sample InputInput6 1Output3.500000000000Input6 3Output4.958333333333Input2 2Output1.750000000000HintConsider the third test example. If you've made two tosses: You can get 1 in the first toss, and 2 in

初学git及用git将代码上传到新浪云的坑坑坑坑

一.坑之初始化(不初始化没法添加远程仓库) 1.你要是不进行初始化,git会报错:fatal: Not a git repository (or any of the parent directories): .git 如图: 2.要在代码文件夹的根目录下进行初始化------>$ git init 3.出现master时及成功或到文件夹的根目录下查看是否有隐藏的.git文件夹()如何查看隐藏的文件夹我就不多赘述了,大家都会) 此时初始化已完成! 二.上传代码(你可能会出现404错误)详情请访问

继续坑坑坑(关于购买的证书 若不添加中级证书 安卓出现无法发起请求)

前言:  作为一个运维人员不背锅,谁背呢! 正文: 虽然也是使用小程序发现的,但是之前在app开发组也发现了这个问题,因为我们购买的是GlobalSign的证书,有一个中级证书的概论,之前直接把签名的证书 和私钥 放nginx  和阿里云的cdn  一直觉得没问题也就没管,但是安卓手机就不一样了~ 现象为手机无法请求数据(数据包都没有发起请求),使用浏览器直接访问接口 现象为 弹出证书不信任..这个问题是因为购买的证书 一定要在crt 后边追加中级证书 (值得注意的是 中级证书放下边 自己的放上

微信小程序的坑坑

no.1 背景图不显示 微信小程序里面是允许用户自定义背景图的,但是限定了背景图的路径及地址,之前一直用相对路径来写,微信开发者工具中也显示出了背景图,误以为没有问题,但是预览的时候发现手机中不显示背景图,这就是今天介绍的第一个坑,背景图不允许为本地图片. 解决方法: 第一.用在线图片转base64码的方法,这种方法的优点在于图片不存储在本地或者服务器上,占用空间小修改方便,缺点是小图片处理效果更好,大图代码相当的长,长的都不想看他... 第二.将图片上传至服务器,引用图片地址就可以了,方便快捷

Python中中文输出显示以及列表初始化坑坑

通过网查得出,使用json中的dumps方式可以解决问题.一般在需要输出得上一步使用,这样可以便于其他错误得产生 import json # result = json.dumps(b, encoding='UTF-8', ensure_ascii=False)# list1 = ["陈","湖北"]# result = json.dumps(list1, encoding='UTF-8', ensure_ascii=False)# print result 这里在

onInterceptTouchEvent onTouchEvent 的坑 坑死了

简单来说,不想研究这个,坑死了. onInterceptTouchEvent 是从父级向子级传递. onTouchEvent 是从子级向父级传递. 它们两个相互不影响,onInterceptTouchEvent 先触发,onTouchEvent 后触发. onInterceptTouchEvent 是ViewGroup的事件. onTouchEvent 是View 的事件,如果一个View 不能再包含子View ,则它没有 onInterceptTouchEvent 事件. 事件触发顺序为 Mo

Consul坑坑一人行之从入门到放弃,记Consul的重复注册、节点失效后无健康检查等坑。。。求解

环境: dotnet core 2.1 CentOS 7 由于听到Eureka2.X最近好像要凉的消息 所以昨天在尝试使用Consul替代Eureka来实现服务发现等功能 Consul使用HttpAPI注册服务 但是!!!! 发现几个非常恶心的地方,在这里分享出来,希望可以得到园子里各位大牛的指导. 坑1:同一个ServiceID 可以在多个节点上重复注册! 情况是这样,我对Consul进行了好多折腾, 首先,为了避免本地Consul挂了导致服务无法注册, 所以我对Consul的HTTP端口(8

百度小程序坑坑坑

吐槽:被小程序坑死啊 问题:在循环中,根据条件加载不同的template模板出现问题. <block s-for="news, index in item.news_data"> <!--begin template is 中第一次比较,满足就会出现问题 --> <block s-if="item.type==1"> <template is="newsText" data="{{{...ite