题目大意:

给你一个由 \(n\) 个整数构成的序列 \(a\),玩家可以进行几个步骤,每一步他可以选择序列中的一个元素(我们把它的值定义为 \(a_k\))并删除它,此时值等于 \(a_{k + 1}\) 和 \(a_{k - 1}\) 的所有元素也都必须从序列中被删除。这次操作会给玩家加 \(a_k\) 分。

  在样例这一数据中,我们先删除一个 \(2\) ,以此删去所有的 \(1,3\),得到一个全为 \(2\) 的序列,接下来,我们无论如何删除,都不会将 \(2\) 删去。由此我不禁产生了一个想法:是不是得到一个全部数字相等的序列,再挨个删除,就可以使结果最大化呢?

  显然,这样的思考不够全面。于是想到了动态规划。因为 \(1≤ {a_i} ≤ {10^5}\),不妨将数字定为状态,\(dp[i]\) 表示将前 \(i\) 种数删除完后所能得到的最大分数。因为每删除一个 \(i\),\(i - 1\) 和 \(i + 1\) 这两种数都要被删除,而若想保留 \(i\) ,就只能删除 \(i - 2\),于是我们不难得到如下的状态转移方程:

\[dp[i] = \max(dp[i - 1],dp[i - 2] + a[i] * i)
\]

(其中 \(a[i]\) 表示在输入的数据中 \(i\) 出现的次数)

AC代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
long long a[N];//记录i出现的次数
long long dp[N];
int main(){
int n;
cin >> n;
for(int i = 1;i <= n;i++){
int x;
cin >> x;
a[x]++;
}
dp[1] = a[1];
for(int i = 2;i <= 100002;i++){
dp[i] = max(dp[i-1],dp[i-2]+i*a[i]);
}
cout<< dp[100002]<<endl;
return 0;
}

CF455ABoredom的更多相关文章

随机推荐

  1. MybatisPlus常用注解

    一.@TableName value属性 实体类的名字是User,数据库表名是t_user @TableName(value = "t_user") public class Us ...

  2. Java编程小技巧(1)——方法传回两个对象

    原文地址:Java编程小技巧(1)--方法传回两个对象 | Stars-One的杂货小窝 题目是个伪命题,由Java语法我们都知道,方法要么返回一个对象,要么就不返回 当有这样的情况,我们需要返回两个 ...

  3. Bert不完全手册5. 推理提速?训练提速!内存压缩!Albert

    Albert是A Lite Bert的缩写,确实Albert通过词向量矩阵分解,以及transformer block的参数共享,大大降低了Bert的参数量级.在我读Albert论文之前,因为Albe ...

  4. 最新管家婆财贸ERP C9 V22.0的应用网页版的财务软件1000用户补丁免狗授权注册机网络版软件下载

    管家婆财贸ERPC9应用价值: 1.多组织独立核算 多种组织形态核算,出具独立的三大财务报表及业务报表,发挥经营管理的积极性,便于专业化运营. 2.兼顾统筹与分权 满足多种集团统管与分权管控模式需求, ...

  5. Spring Boot+微信小程序_保存微信登录者的个人信息

    1. 前言 微信小程序开发平台,提供有一类 API,可以让开发者获取到微信登录用户的个人数据.这类 API 统称为开放接口. Tip:微信小程序开发平台,会把微信登录用户的个人信息分为明文数据和敏感数 ...

  6. 每天一个 HTTP 状态码 102

    102 Processing 102 Processing 是用于 WebDAV协议 请求的状态码. 这个状态码表示服务器已经收到了客户端的请求,正在处理,但暂时还没有可接触的响应.可以用于防止客户端 ...

  7. 高危!Fastjson反序列化远程代码执行漏洞风险通告,请尽快升级

    据国家网络与信息安全信息通报中心监测发现,开源Java开发组件Fastjson存在反序列化远程代码执行漏洞.攻击者可利用上述漏洞实施任意文件写入.服务端请求伪造等攻击行为,造成服务器权限被窃取.敏感信 ...

  8. 负载均衡之DR实验

    实验环境 本实验搭建在虚拟机中.一台服务器作为DR两台作为RS,还有一台为后续内容会用到的备用机. 实验环境示意图: 1. 修改网络层VIP 修改DR,添加VIP 修改前: 修改后: 修改RS,修改A ...

  9. 『忘了再学』Shell基础 — 23、其他环境变量配置文件

    目录 1.注销时生效的环境变量配置文件 2.其他配置文件 3.Shell登录信息相关文件 (1)/etc/issue文件说明 (2)/etc/issue.net文件说明 (3)/etc/motd文件说 ...

  10. django框架7

    内容概要 聚合查询 分组查询 F查询 Q查询 ORM查询优化 ORM常见字段类型 ORM重要参数 ORM事务操作 ORM执行原生SQL 多对多三种创建方式 内容详情 聚合查询 MySQL聚合函数:ma ...