# $奶牛会展$

题目链接

由于智商之和或情商之和不能为负数,所以直接把智商+情商>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】 奶牛会展的更多相关文章

  1. 洛谷P2340 奶牛会展

    题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由于负的智商或情商会造成 ...

  2. 【题解】 洛谷P2340 奶牛会展

    传送门 重新开始打代码Day1 第一眼看感觉不对啊,这道题目好像空间开不下,是不是不能dp... 后来想到了一个思路,他要求的是\(dp_{i,j,k}=j+k\),然后这样子不是很奇怪吗? 直接一维 ...

  3. 洛谷2344 奶牛抗议(DP+BIT+离散化)

    洛谷2344 奶牛抗议 本题地址:http://www.luogu.org/problem/show?pid=2344 题目背景 Generic Cow Protests, 2011 Feb 题目描述 ...

  4. P2340 奶牛会展(状压dp)

    P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...

  5. 洛谷P2402 奶牛隐藏

    洛谷P2402 奶牛隐藏 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有n块田地. ...

  6. P2340 奶牛会展 DP 背包

    P2340 奶牛会展 DP \(n\)头牛,每头牛有智商\(s[i]\)情商\(f[i]\),问如何从中选择几头牛使得智商情商之和最大 且 情商之和.智商之和非负 \(n\le 400,-10^3\l ...

  7. 洛谷P2402 奶牛隐藏(网络流,二分答案,Floyd)

    洛谷题目传送门 了解网络流和dinic算法请点这里(感谢SYCstudio) 题目 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛 ...

  8. [洛谷P1842] 奶牛玩杂技

    题目类型:贪心+证明,经典题 传送门:>Here< 题意:有\(N\)头奶牛,每个奶牛有一个重量\(W[i]\),力量\(S[i]\).定义每个奶牛的压扁程度为排在它前面的所有奶牛的总量之 ...

  9. [洛谷P2124] 奶牛美容

    洛谷题目链接:奶牛美容 题目描述 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 6 16 ................ ..XXXX....XXX... ...XXXX... ...

随机推荐

  1. 解决maven项目中,缺少 maven dependencies

    因为项目需要将普通项目转换为maven项目,在右键 ’项目‘configure 后,添加maven后,发现缺少 maven dependencies,于是从网上找了一些处理措施,大体上是在.class ...

  2. javaweb之jsp标签

    1.JSP标签简介 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 2.JSP常用标签 ...

  3. Java Map类常用方法

    关于Map集合中常用的方法: void clear(); 清空Map boolean containsKey(Object key); 判断Map中是否包含这样的key boolean contain ...

  4. untiy3d小工具——修改scene与prefab中的sprite

    坑1:因为替换图片要获取所有包含image的组件,开始我使用的是gameobject.getComponents<Image>()和FindObjectsOfType<Image&g ...

  5. Python入门-初始函数

    今天让我们来初步认识一个在python中非常重要的组成部分:函数 首先,让我们来幻想这样一个场景: 比如说我们现在想要通过社交软件约一个妹子,步骤都有什么? print('打开手机 ') print( ...

  6. HTML颜色代码

    记录十种个人比较喜欢的颜色: #19CAAD   #8CC7B5  #A0EEE1  #BEE7E9  #BEEDC7 #D6D5B7  #D1BA74  #E6CEAC  #ECAD9E  #F46 ...

  7. 各种优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)

    前言 这里讨论的优化问题指的是,给定目标函数f(x),我们需要找到一组参数x,使得f(x)的值最小. 本文以下内容假设读者已经了解机器学习基本知识,和梯度下降的原理. SGD SGD指stochast ...

  8. lsqnonlin函数使用方法

    非线性最小二乘函数  lsqnonlin  格式x = lsqnonlin(fun,x0) %x0 为初始解向量:fun为,i=1,2,-,m,fun返回向量值F,而不是平方和值,平方和隐含在方法中, ...

  9. [翻译] NimbusKit

    注意:NimbusKit 是Github上iOS部分开源库排名前20中的一员. http://nimbuskit.info/ https://github.com/jverkoey/nimbus ht ...

  10. openAI最近推出了一个新的语言模型 "GPT-2"

    [转]openAI最近推出了一个新的语言模型 "GPT-2",由于效果太好(?)几乎可以以假乱真,所以openAI正在犹豫是否把这个project完整release出来.(于是有人 ...