[BZOJ] 4247 挂饰
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 1390 Solved: 566
[Submit][Status][Discuss]
Description
JOI君有N个装在手机上的挂饰,编号为1...N。 JOI君可以将其中的一些装在手机上。
JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他挂件的挂钩。每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上。直接挂在手机上的挂件最多有1个。
此外,每个挂件有一个安装时会获得的喜悦值,用一个整数来表示。如果JOI君很讨厌某个挂饰,那么这个挂饰的喜悦值就是一个负数。
JOI君想要最大化所有挂饰的喜悦值之和。注意不必要将所有的挂钩都挂上挂饰,而且一个都不挂也是可以的。
Input
第一行一个整数N,代表挂饰的个数。
接下来N行,第i行(1<=i<=N)有两个空格分隔的整数Ai和Bi,表示挂饰i有Ai个挂钩,安装后会获得Bi的喜悦值。
Output
输出一行一个整数,表示手机上连接的挂饰总和的最大值
Sample Input
50 42 -21 -10 10 3
Sample Output
5
HINT
将挂饰2直接挂在手机上,然后将挂饰1和挂饰5分别挂在挂饰2的两个挂钩上,可以获得最大喜悦值4-2+3=5。1<=N<=20000<=Ai<=N(1<=i<=N)-10^6<=Bi<=10^6(1<=i<=N)Source
JOI 2013~2014 春季training合宿 竞技4 By PoPoQQQ
简单的背包(?)
//Stay foolish,stay hungry,stay young,stay simple
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;const int MAXN=2005;inline int rd(){int ret=0,f=1;char c;while(c=getchar(),!isdigit(c))f=c=='-'?-1:1;while(isdigit(c))ret=ret*10+c-'0',c=getchar();return ret*f;
} int f[MAXN][MAXN];
int n;struct Node{int a,b;
}nodes[MAXN];bool cmp(const Node &x,const Node &y){return x.a> y.a ;
}int main(){n=rd();memset(f,0xcf,sizeof(f));for(int i=1;i<=n;i++) nodes[i].a = rd(),nodes[i].b = rd();sort(nodes+1,nodes+1+n,cmp);f[0][1]=0;for(int i=1;i<=n;i++){for(int j=0;j<=n;j++){f[i][j]=max(f[i-1][j],f[i-1][max(j-nodes[i].a,0)+1]+nodes[i].b);
// cout<<f[i][j]<<endl;}}int ans=0;for(int i=0;i<=n;i++) ans=max(ans,f[n][i]);cout<<ans<<endl;return 0;
}
[BZOJ] 4247 挂饰相关推荐
- BZOJ 4247 挂饰 背包DP
4247: 挂饰 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id ...
- bzoj 4247: 挂饰(DP)
4247: 挂饰 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 1230 Solved: 497 [Submit][Status][Discuss ...
- BZOJ 4247 挂饰
4247: 挂饰 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 1388 Solved: 565 [Submit][Status][Discuss] ...
- bzoj 4247: 挂饰
Description JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同--其中的一些挂饰附有可以挂其他挂件的挂钩.每个挂件要么直 ...
- bzoj 4247: 挂饰 背包dp
题意 JOI君有N个装在手机上的挂饰,编号为1-N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同--其中的一些挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂在手机上,要么挂在 ...
- BZOJ.4247.挂饰(背包DP)
题目链接 如果贪心,正的显然先选.然后处理负的,好像要用背包. 看这数据范围不如直接用背包.\(f[i][j]\)表示前\(i\)个物品,剩下\(j\)个钩子的最大价值. 因为没有钩子的放前面无法转移 ...
- bzoj千题计划197:bzoj4247: 挂饰
http://www.lydsy.com/JudgeOnline/problem.php?id=4247 先把挂饰按挂钩数量从大到小排序 dp[i][j]前i个挂饰,剩下j个挂钩的最大喜悦值 分挂和不 ...
- bzoj4247 挂饰
4247: 挂饰 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 1098 Solved: 440 [Submit][Status][Discuss ...
- bzoj4247: 挂饰(背包dp)
4247: 挂饰 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 1136 Solved: 454 [Submit][Status][Discuss ...
最新文章
- 开启windows ping端口功能
- 享元模式 Flyweight Pattern
- prometheus监控_使用Prometheus和Grafana监视开放自由
- Coprime Sequence 思维 gcd 删一个数
- jwt, json web token
- python期末题目_Python期末复习题必考
- java+jxls利用excel模版进行导出
- 虚拟服务器和虚拟主机(空间)的区别
- openstack热添加磁盘
- Zemax操作41--公差分析(一)
- 安全公司发现雄迈数字摄像机的主控口令“已泄露”
- 读万卷书,行万里路,写万行Code
- 构建之法助教园地第一次作业--点评西北师范大学|李晓婷
- 单点登录SSO----JSON Web Token(JWT)机制
- 基于ONVIF协议的(IPC)客户端程序开发-10 设备校时
- 读懂matlab代码,一个Matlab的寻峰程序没有看懂,不知大家能否帮助?
- 汉诺塔(内部+伪图形)
- Java Service Wrapper 发布Java程序为Windows服务
- TensorFlow及深度学习相关资料积累汇总【不定期更新】
- 树莓派之更改开机画面
热门文章
- 有趣的 CentOS 7 命令
- 充电器用着用着就松了怎么办_充电器为什么用着用着就松了
- iis 安装织梦DedeCMS 教程
- 数据库与缓存一致性解决方案
- 2021年深圳宝安区科技计划申报条件及补贴,资助500万元
- 计算机基础知识(电脑的基本组成原则)
- Java教程之mysql分库分表方案
- python微博爬虫教程_Python爬虫教程-新浪微博分布式爬虫分享
- 在写文档封面时,word中下划线变粗
- 【解决】HikariPool-1 - Connection is not available, request timed out / Thread starvation or clock leap