牛客小白月赛30 J.小游戏 (DP)
2024-09-01 12:31:23
- 题意:给你一组数,每次可以选择拿走第\(i\)个数,得到\(a[i]\)的分数,然后对于分数值为\(a[i]-1\)和\(a[i]+1\)的值就会变得不可取,问能得到的最大分数是多少.
- 题解:\(a[i]\)最大取\(2e5\),那我们可以枚举\([1,2e5]\)的所有数字,用桶记录每个数出现的次数\(cnt[x]\),对于当前所枚举的数\(x\),我们有两种选择:
1.选
2.不选
假如我们选择\(x\),那么\(x-1\)肯定不能选的,不难想,最优的情况一定是从最近的\(x-2\)转移过来并且加上当前的贡献,假如我们不选的话,那么我们的状态就应该从上一个数\(x-1\)转移过来,所以状态转移方程就是\(dp[i]=max(dp[i-1],dp[i-2]+i*cnt[i])\).
- 代码:
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define me memset
#define rep(a,b,c) for(int a=b;a<=c;++a)
#define per(a,b,c) for(int a=b;a>=c;--a)
const int N = 1e6 + 10;
const int mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;
using namespace std;
typedef pair<int,int> PII;
typedef pair<ll,ll> PLL;
ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}
ll lcm(ll a,ll b) {return a/gcd(a,b)*b;}
int n;
int cnt[N];
ll dp[N];
ll ans=0;
int main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>n;
rep(i,1,n){
int x;
cin>>x;
cnt[x]++;
}
dp[1]=max(0,cnt[1]);
rep(i,0,200010){
dp[i]=max(dp[i-1],dp[i-2]+i*cnt[i]);
ans=max(ans,dp[i]);
}
cout<<ans<<'\n';
return 0;
}
最新文章
- 小记搭建WAPM运行ThinkPHP时所需要的配置
- java之文件夹
- JMeter数据库性能测试
- AppWidget应用(一)---创建一个appWidget
- Mongo组合索引优化
- UVA 11853 Paintball ——(dfs+圆交判定)
- MAC OSX 10.10 下安装PHP环境
- 浏览器缓存机制<;转>;
- Ubuntu 16.04下安装64位谷歌Chrome浏览器
- SSL证书安装(Tomcat)腾讯云服务器
- Linux中查看你的用户是否为root用户
- 《HTTP 权威指南》笔记:第十六章&;第十七章 国际化、内容协商与转码
- Hbase Shell 数据操作说明
- 安卓工作室 android studio 汉化后,报错。 设置界面打不开。Can&#39;t find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label
- 【基础】iframe之间的切换(四)
- htmlayout 最简单的实践,用于理解实现原理。
- Ubuntu系统tensorflow安装问题及解决
- 利用VisualStudio单元测试框架举一个简单的单元测试例子
- js常用的事件对象
- mysql更新日志问题
热门文章
- 编译安装PHP - 7.3.16
- ip访问本机vs调试项目
- kill 指令的执行原理
- 【MySQL】ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing
- 使用 gRPCurl 调试.NET 5的gPRC服务
- oracle可传输表空间测试
- Linux TCP漏洞 CVE-2019-11477 CentOS7 修复方法
- 与数论的厮守05:gcd(a,b)=gcd(b,a mod b)的证明
- JS中常用的工具类
- 解决安装mysql动态库libstdc++.so.6、libc.so.6版本过低问题