洛谷P2340 奶牛会展

洛谷P2340 奶牛会展
用下标表示智商,值表示情商

 1 #include <bits/stdc++.h>
 2 #define For(i,j,k) for(int i=j;i<=k;i++)
 3 using namespace std ;
 4
 5 const int N = 411 ;
 6 int n,m ;
 7 int a[N],b[N],f[800011] ;
 8
 9 inline int read()
10 {
11     int x = 0 , f = 1 ;
12     char ch = getchar() ;
13     while(ch<‘0‘||ch>‘9‘) { if(ch==‘-‘) f = -1 ; ch = getchar() ; }
14     while(ch>=‘0‘&&ch<=‘9‘) { x = x * 10+ch-48 ; ch = getchar() ; }
15     return x * f ;
16 }
17
18 int main()
19 {
20     n = read() ;
21     For(i,1,n) {
22         a[i]=read(),b[i]=read() ;
23         if(a[i]>0) m+=a[i] ;
24     }
25     m=m<<1 ;
26     memset(f,-127/3,sizeof f) ;
27     f[m/2] = 0 ;
28     For(i,1,n) {
29         if(a[i]>0)
30           for(int j=m;j>=a[i];j--) f[j]=max(f[j],f[j-a[i]]+b[i]) ;
31         if(a[i]<=0)
32           For(j,0,m+a[i]) f[j]=max(f[j],f[j-a[i]]+b[i]) ;
33     }
34
35     int k = m/2 ;
36     int ans = 0 ;
37     For(i,0,k)
38       if( f[i+k]>=0&&i+f[i+k]>=ans )
39           ans = i+f[i+k] ;
40     printf("%d\n",ans) ;
41     return 0 ;
42 }
时间: 2024-10-28 23:55:49

洛谷P2340 奶牛会展的相关文章

洛谷P1154 奶牛分厩

题目描述 农夫约翰有N(1<=N<=5000)头奶牛,每头奶牛都有一个唯一的不同于其它奶牛的编号Si,所有的奶牛都睡在一个有K个厩的谷仓中,厩的编号为0到K-1.每头奶牛都知道自己该睡在哪一个厩中,因为约翰教会了它们做除法,Si MOD K的值就是第i头奶年所睡的厩的编号. 给出一组奶牛的编号,确定最小的K使得没有二头或二头以上的奶牛睡在同一厩中. 输入输出格式 输入格式: 第一行一个正整数N,第2到N+1行每行一个整数表示一头奶牛的编号. 输出格式: 单独一行一个整数表示要求的最小的K,对所

洛谷——P1154 奶牛分厩

P1154 奶牛分厩 题目描述 农夫约翰有N(1<=N<=5000)头奶牛,每头奶牛都有一个唯一的不同于其它奶牛的编号Si,所有的奶牛都睡在一个有K个厩的谷仓中,厩的编号为0到K-1.每头奶牛都知道自己该睡在哪一个厩中,因为约翰教会了它们做除法,Si MOD K的值就是第i头奶年所睡的厩的编号. 给出一组奶牛的编号,确定最小的K使得没有二头或二头以上的奶牛睡在同一厩中. 输入输出格式 输入格式: 第一行一个正整数N,第2到N+1行每行一个整数表示一头奶牛的编号. 输出格式: 单独一行一个整数表

洛谷 P1154 奶牛分厩

P1154 奶牛分厩 农夫约翰有N(1<=N<=5000)头奶牛,每头奶牛都有一个唯一的不同于其它奶牛的编号Si,所有的奶牛都睡在一个有K个厩的谷仓中,厩的编号为0到K-1.每头奶牛都知道自己该睡在哪一个厩中,因为约翰教会了它们做除法,Si MOD K的值就是第i头奶年所睡的厩的编号. 给出一组奶牛的编号,确定最小的K使得没有二头或二头以上的奶牛睡在同一厩中. 输入输出格式 输入格式: 第一行一个正整数N,第2到N+1行每行一个整数表示一头奶牛的编号. 输出格式: 单独一行一个整数表示要求的最

洛谷P1472 奶牛家谱 Cow Pedigrees

P1472 奶牛家谱 Cow Pedigrees 102通过 193提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 农民约翰准备购买一群新奶牛. 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < 200).这些二叉树有如下性质: 每一个节点的度是0或2.度是这个节点的孩子的数目. 树的高度等于K(1 < K < 100).高度是从

洛谷P1578 奶牛浴场

P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必须在牛场中的一个固定的位置产奶,而奶牛显然不能在浴场中产奶,于是,John希望所建造的浴场不覆盖这些产奶点.这回,他又要求助于Clevow了.你还能帮助Clevow吗? John的牛场和规划的浴场都是矩形.浴场要完全位于牛场之内,并且浴场的轮廓要与牛场的轮廓平行或者重合.浴场不能覆盖任何产奶点,但是

洛谷P2345 奶牛集会

题目背景 MooFest, 2004 Open 题目描述 约翰的N 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很 多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐标为Xi,没有两头奶牛的坐标是相同的.奶牛们的叫声很大,第i 头和第j 头奶牛交流,会发出max{Vi; Vj}×|Xi ? Xj | 的音量,其中Vi 和Vj 分别是第i 头和第j 头奶牛的听力.假设每对奶牛之间同时都在说话,请计算所有奶牛产生的音量之和是多少.

【Luogu】P2340奶牛会展

题目链接 突发奇想可以用f[i]表示智商和为i的时候情商最大是多少.这样就变成了一个背包问题. 最后更新答案的时候从0到最大背包容量遍历,最后答案是最大的i+f[i]; 但是虽然答案只能从0到m里选,转移过程中是不能丢掉负数体积的.这是因为人家题目只说了要最后的智商和不能小于零,情商和不能小于零,没说中间不可以. 代码如下. #include<cstdio> #include<cctype> #include<cstring> #include<algorithm

洛谷——P1843 奶牛晒衣服

https://www.luogu.org/problem/show?pid=1843#sub 题目背景 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣 服就成了很不爽的事情. 题目描述 熊大妈请你帮助完成这个重任 . 洗完衣服后 , 你就要弄干衣服 . 衣服在 自然条件下用 1 的时间可以晒干 A 点湿度 . 抠门的熊大妈买了 1 台烘衣机 . 使用烘衣机可以让你用 1 的时间使 1 件衣服除了自然晒干 A 点湿度外,还 可以烘干 B 点湿度,但在 1 的时间内只能对

【题解】luogu p2340 奶牛会展

总结:1.智商从哪开始循环没想到. 2.将智商的正负分开讨论.负智商要用顺序,保证不会使一头牛多用. 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int MAXN = 800005; 4 int dp[MAXN], n, iq[405], eq[405], maxx = -2000000; 5 int main() 6 { 7 memset(dp, -0x3f, sizeof(dp)); 8 dp[400000] = 0;