【BZOJ4247】挂饰
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
5
0 4
2 -2
1 -1
0 1
0 3
Sample Output
5
HINT
将挂饰2直接挂在手机上,然后将挂饰1和挂饰5分别挂在挂饰2的两个挂钩上,可以获得最大喜悦值4-2+3=5。
1<=N<=2000
0<=Ai<=N(1<=i<=N)
-10^6<=Bi<=10^6(1<=i<=N)
Source
JOI 2013~2014 春季training合宿 竞技4 By PoPoQQQ
不难看出是背包.
那么把一开始读入体积为0的物品的体积当成1,不为0的当成-v+1来做背包.
要注意一些问题:
一开始直接暴力背包WA了…求教了Claris发现了这个问题…
以及初始化时候用负无穷,但是无穷量不要直接宏定义0x7fffffff然后前面加个负号否则会WA.
接下来就是傻逼背包了.
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define MAXN 4100
#define MAXINT 2100000000
using namespace std;
int f[MAXN>>1][MAXN];
int n,ans=-MAXINT;
int v,c;
struct pack
{int v,c;bool operator <(const pack& a)const{return v>a.v;}
}s[MAXN];
int main()
{scanf("%d",&n);for (int i=0;i<=n;i++) f[0][i]=f[i][n+1]=-MAXINT;for (int i=1;i<=n;i++) scanf("%d%d",&s[i].v,&s[i].c);f[0][1]=0;sort(s+1,s+n+1);for (int i=1;i<=n;i++)for (int j=0;j<=n;j++)f[i][j]=max(f[i-1][max(j-s[i].v,0)+1]+s[i].c,f[i-1][j]);for (int i=0;i<=n;i++) ans=max(ans,f[n][i]);printf("%d\n",ans);
}
【BZOJ4247】挂饰相关推荐
- bzoj千题计划197:bzoj4247: 挂饰
http://www.lydsy.com/JudgeOnline/problem.php?id=4247 先把挂饰按挂钩数量从大到小排序 dp[i][j]前i个挂饰,剩下j个挂钩的最大喜悦值 分挂和不 ...
- BZOJ4247挂饰
Description JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同--其中的一些挂饰附有可以挂其他挂件的挂钩.每个挂件要么直 ...
- 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 ...
- BZOJ4247: 挂饰
Description JOI君有N个装在手机上的挂饰,编号为1-N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同--其中的一些挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂 ...
- bzoj4247: 挂饰(01背包)
状态:f[ i ][ j ]表示选到第 i 个物品时还剩 j 个勾 转移:f[i][j]=max(f[i-1][j-edge[i].gou+1>1?j-edge[i].gou+1:1]+edge ...
- 【BZOJ4247】挂饰 背包
[BZOJ4247]挂饰 Description JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同--其中的一些挂饰附有可以挂其他 ...
- 【BZOJ4247】挂饰,又一个奇特的背包
Description JOI君有N个装在手机上的挂饰,编号为1-N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同--其中的一些挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂 ...
- BZOJ 4247 挂饰 背包DP
4247: 挂饰 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id ...
最新文章
- VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询
- 远程链接oracle 12514,数据库建好后,本地连接正常,远程连接ORA-12514错误
- mac上投屏android_全平台Win/Mac全设备Android/iOS 免费无线投屏神器
- C#3.0新特性小结(2)
- 1.为什么要学习MATLAB
- 核心概念——节点/边/Combo——内置节点——Diamond
- 关于单链表,二叉树,图,查找和排序的软件编程
- Mybatis(12)事务原理和自动提交设置
- 动态开辟内存_C/C++工程师你理解程序的内存分区吗?
- 刷屏!马化腾:腾讯只是一家普通公司,随时可以被替换
- 从源码角度分析RocketMQ同步刷盘与异步刷盘的异同
- 三星SOC的显示控制器及framebuffer驱动s3c-fb.c中probe函数分析
- Python functools模块之cmp_to_key
- 一些文字游戏....
- ae合成设置快捷键_(精品)AE从小白到大神之路(一)-AE入门
- 为什么业务中很少用到设计模式
- 机械革命极光Pro 评测
- Unity3D教程:手游开发常用排序算法 -下
- 【MyBatis】mybatis分页插件
- js加密大全(防止客户端查看自己的js文件)
热门文章
- 腾讯的两难抉择背后,那是拼多多和京东的一场暗战
- c语言hidcur隐藏光标,鼠标失灵?这里有常见的几种解决办法
- java 成员变量(实例变量) 和类变量(静态变量)的区别
- Codeforces-1687 A: The Enchanted Forest 【贪心、简单数学】
- remote: username : Incorrect username or password (access token) fatal: Authentication failed for
- FreeNAS在FC中的简答搭建
- 开发一个JS FA应用
- Uos窗管开发IDE介绍.VSCode
- Netapp 磁盘、盘柜、控制器固件升级总结
- 广西民大计算机类分数线,2020广西民族大学研究生分数线汇总(含2016-2020历年复试)...