【洛谷P2340】 奶牛会展
# $奶牛会展$
由于智商之和或情商之和不能为负数,所以直接把智商+情商>0的奶牛加上是布星的
我们考虑背包,不妨将智商当做物品大小,将情商当做价值
我们要求 大小+价值 的最大值
\(dp[j]\)表示智商为\(j\)时情商的最大值
当智商为负数时,\(dp[j]\)是会爆炸的,所以我们用\(dp[j+400040]\)存\(dp[j]\)
我们要跑\(01\)背包,但是滚动数组滚的顺序是需要注意的
当\(i\)的智商\(a[i]>0\)时,要\(j\)从大到小枚举,防止一个物品选多次
而当\(i\)的智商\(a[i]<0\)时,\(j\)从小到大枚举
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,a[410],b[410];
int D=400040,ans;
int dp[800100],maxm,minm;
int main()
{
scanf("%d",&n);
memset(dp,~0x3f,sizeof(dp));
dp[D]=0;
for(int i=1;i<=n;i++){
scanf("%d%d",&a[i],&b[i]);
maxm+=max(a[i],0);
minm+=min(a[i],0);
}
for(int i=1;i<=n;i++)
if(a[i]>=0)
for(int j=maxm;j>=minm;j--)
dp[j+D]=max(dp[j+D],dp[j+D-a[i]]+b[i]);
else
for(int j=minm;j<=maxm;j++)
dp[j+D]=max(dp[j+D],dp[j+D-a[i]]+b[i]);
for(int i=D;i<=maxm+D;i++)
if(dp[i]>=0)
ans=max(ans,i-D+dp[i]);
printf("%d\n",ans);
return 0;
}
【洛谷P2340】 奶牛会展的更多相关文章
- 洛谷P2340 奶牛会展
题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由于负的智商或情商会造成 ...
- 【题解】 洛谷P2340 奶牛会展
传送门 重新开始打代码Day1 第一眼看感觉不对啊,这道题目好像空间开不下,是不是不能dp... 后来想到了一个思路,他要求的是\(dp_{i,j,k}=j+k\),然后这样子不是很奇怪吗? 直接一维 ...
- 洛谷2344 奶牛抗议(DP+BIT+离散化)
洛谷2344 奶牛抗议 本题地址:http://www.luogu.org/problem/show?pid=2344 题目背景 Generic Cow Protests, 2011 Feb 题目描述 ...
- P2340 奶牛会展(状压dp)
P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...
- 洛谷P2402 奶牛隐藏
洛谷P2402 奶牛隐藏 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有n块田地. ...
- P2340 奶牛会展 DP 背包
P2340 奶牛会展 DP \(n\)头牛,每头牛有智商\(s[i]\)情商\(f[i]\),问如何从中选择几头牛使得智商情商之和最大 且 情商之和.智商之和非负 \(n\le 400,-10^3\l ...
- 洛谷P2402 奶牛隐藏(网络流,二分答案,Floyd)
洛谷题目传送门 了解网络流和dinic算法请点这里(感谢SYCstudio) 题目 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛 ...
- [洛谷P1842] 奶牛玩杂技
题目类型:贪心+证明,经典题 传送门:>Here< 题意:有\(N\)头奶牛,每个奶牛有一个重量\(W[i]\),力量\(S[i]\).定义每个奶牛的压扁程度为排在它前面的所有奶牛的总量之 ...
- [洛谷P2124] 奶牛美容
洛谷题目链接:奶牛美容 题目描述 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 6 16 ................ ..XXXX....XXX... ...XXXX... ...
随机推荐
- [Erlang]各种系统限制总结
Erlang本身对进程数,原子长度等没有限制,但为了提高性能和节省内存,总会在实际实现中和运行环境中作出一些限制. 1.进程数量 缺省情况下同时存在的最大Erlang进程数量不超过2^18=26214 ...
- Spring学习笔记:声明式事务管理增删改查业务
一.关于是事务 以方法为单位,进行事务控制:抛出异常,事务回滚. 最小的执行单位为方法.决定执行成败是通过是否抛出异常来判断的,抛出异常即执行失败 二.声明式事务: 声明式事务(declarative ...
- How to limit Dialog's max height?
1. We can make it to play trick in code. At Dialog's show function, after app has set contentView, w ...
- 抽象工厂模式的C++、Java实现
1.抽象工厂模式UML 图1. 抽象工厂模式的UML 2.C++实现 C++实现类图为: 图2. 抽象工厂模式的C++实现类图 其中,AbstractFactory的实现代码为: //抽象工厂类基类. ...
- java unsupported major.minor version 51.0 解决
1.概述 出现如题所述异常 是因为jdk高版本 编译后的class文件 运行在低版本的jre环境下(如jdk7编译 运行在jdk6环境下) 2. 解决方案 在eclipse等ide中重新编译 指定编译 ...
- xml文件读取到数据库
xml文件读取到数据库 第一步,导包 c3p0,dom4j,jaxen,MySQL-connector 第二步 xml文件,config文件 第三步 javabean 第四步 c3p0的工具类 ...
- 29_Future模式2_JDK内置实现
[Future使用场景] Future表示一个可能未完成的一部任务的结果,针对这个结果可以添加CallBack,以便在任务执行成功或失败后作出相应的操作. Future模式非常适合在处理耗时很长的业务 ...
- css 三角形的制作
参考网页: http://www.jb51.net/article/42513.htm 1 .设置宽高为0 2 .设置4条边框 3 .设置边框颜色border-color如下: border-colo ...
- css display属性详解
css display属性在对css做layout设计时非常重要,它的值有以下几种: Value Description Play it inline Default value. Displays ...
- 音乐播放插件Aplayer+WebAPI的使用【附下载】
本次介绍的是音乐播放器APlayer结合WebAPI的使用,先给各位看下效果: 上面就是APlayer的效果,然后这插件的地址是 https://github.com/DIYgod/APlayer ...