HDU 1171 —— Big Event in HDU 01背包入门
2015-12-14 17:09
183 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1171
题意:有n种数,下面n行给出每种数的大小以及个数,将所有的数字分成两堆,且两堆的差值尽可能的小;
注意点:1、容量是sum/2;2、n<0 break,而不是-1;3、数组大小不要开错;
题意:有n种数,下面n行给出每种数的大小以及个数,将所有的数字分成两堆,且两堆的差值尽可能的小;
注意点:1、容量是sum/2;2、n<0 break,而不是-1;3、数组大小不要开错;
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int maxn = 250000+5; int dp[maxn]; int a[maxn]; int n; int main() { while(~scanf("%d", &n)) { if(n < 0) break; memset(dp, 0, sizeof dp); int cnt = 0; int sum = 0; for(int i = 1;i<=n;i++) { int x, y; scanf("%d%d", &x, &y); sum += (x*y); while(y--) { a[++cnt] = x; } } for(int i = 1;i<=cnt;i++) { for(int j = sum/2;j>=a[i];j--) { dp[j] = max(dp[j], dp[j-a[i]]+a[i]); } } printf("%d %d\n", max(sum-dp[sum/2], dp[sum/2]), min(sum-dp[sum/2], dp[sum/2])); } return 0; }
相关文章推荐
- MTK ACC Mode配置使用ACCDET2引脚做中断源------之进制转换超详细通俗讲解
- PostgreSQL Obtaining the Result Status
- 有效用例模式阅读笔记二
- Intra Refresh of H264 encoder
- 第十六周项目1—交换排序之冒泡排序
- 小有收获的一天。
- 第四周-项目五猴子选大王
- 第十六周项目1-验证算法插入排序之希尔排序
- msyql 批量 更新 与 批量 更新多条记录不同的值
- 第十四周项目1-(3) 验证分块查找算法
- 第16周、项目4—英文单词的基数排序
- 第十六周 项目1-验证算法(5)
- 第十六周上机实践—项目1(4)—验证算法 冒泡排序 直接选择排序
- ofbiz框架入门例子详解-------分页篇
- hibernate使用懒加载时,mvc转json时因为session已经关闭报错
- 关于vs2012+caffe配置中出现的"常量中的字符太多"错误的解决办法
- 跨浏览器的事件侦听器和事件对象
- LeetCode - Regular Expression Matching
- 第十六周——【项目3 - 归并排序算法的改进】
- 第16周 项目1-直接选择排序