Codeforces Round #260 (Div. 2) C
来源:互联网 发布:淘宝网书本 编辑:程序博客网 时间:2024/05/22 06:37
C. Boredom
题意:给一串数,你对它执行若干次操作。每次操作可以任意删去一个数,比如k,同时值为k+-1的数全部要删去,该次操作你将得到k分。问到最后你最多得多少分。
思路:dp。比赛的时候脑残了开了dp[n][n]去区间dp爆内存,然后又以为是贪心,走上了不归路。其实dp[n][2]就好了。对每个可能的值计数,从小到大顺序删,dp(i,1)表示到i时删除i的情况下最大得分,dp(i,0)表示到i时不删除i的情况下最大得分。状态转移见代码。
#include <iostream> #include <stdio.h> #include <cmath> #include <algorithm> #include <iomanip> #include <cstdlib> #include <string> #include <memory.h> #include <vector> #include <queue> #include <stack> #include <map> #include <set> #include <ctype.h> #define INF 1000000 #define ll long long#define min3(a,b,c) min(a,min(b,c)) using namespace std; long long cnt[100010];long long dp[100010][2];int main(){int n;while(cin>>n){memset(cnt,0,sizeof(cnt));memset(dp,0,sizeof(dp));int num;for(int i=1;i<=n;i++){scanf("%d",&num);cnt[num]++;}for(long long i=1;i<=100000;i++){dp[i][0]=max(dp[i-1][0],dp[i-1][1]);dp[i][1]=dp[i-1][0]+cnt[i]*i;}cout<<max(dp[100000][1],dp[100000][0])<<endl;}return 0;}
0 0
- Codeforces Round #260 (Div. 2) C. Boredom
- Codeforces Round #260 (Div. 2) C
- Codeforces Round #260 (Div. 2) C Boredom
- Codeforces Round #260 (Div. 2) A ~ C
- Codeforces Round #260 (Div. 2)C. Boredom
- 【codeforces】Codeforces Round #370 (Div. 2) C
- Codeforces Round #260 (Div. 2)
- Codeforces Round #260 (Div. 2)
- Codeforces Round #260 (Div. 2)
- Codeforces Round #260 (Div. 2)
- Codeforces Round #260 (Div. 2)C. Boredom(dp)
- Codeforces Round #260 (Div. 2)-A,B,C
- Codeforces Round #260 (Div. 2) C (DP)
- Codeforces Round #260 (Div. 2) C. Boredom【DP】
- Codeforces Round #260 (Div. 2) A,B,C
- dp解Codeforces Round #260 (Div. 2)C. Boredom
- Codeforces Round #260 (Div. 2)——C. Boredom
- Codeforces Round #260 (Div. 2) C. Boredom(DP)
- 【UVALive】2965 Jurassic Remains 中途相遇法
- 阿里巴巴面试题总结
- 1014. Waiting in Line (30)
- Android OpenGL ES 开发教程(11):绘制三角形Triangle
- qq空间分享ios,分享失败
- Codeforces Round #260 (Div. 2) C
- COCOS2DX的场景切换and动作
- 在FireBug中计算Javascript 运行时间
- Spring的xml注入实例
- 域名反向解析
- Intent应用
- Android Notification通知详解
- ORACLE WITH AS 用法
- JavaScript动态改变页面元素