UVA 562 Dividing coins (01背包基础)
2015-09-09 11:17
190 查看
【题目链接】:click here~~
代码:
代码:
/* * Problem: UVA No.562 * Running time: 0MS * Complier: C++ * Author: ACM_herongwei * Create Time: 11:12 2015/9/9 星期三 * zeroonebags * 将金币总价值的一半作为背包容量,然后zeronebags */ #include <stdio.h> #include <iostream> #include <string.h> #include <algorithm> #define CLR(c,v) (memset(c,v,sizeof(c))) using namespace std; template <typename _T> inline _T Max(_T a,_T b) { return (a>b)?(a):(b); } template <typename _T> inline _T Maxx(_T a,_T b,_T c) { return (a>Max(b,c))?(a):(Max(b,c)); } const int N = 1e5 + 10; int dp ; int value ; int main() { int Ncase; scanf("%d",&Ncase); while(Ncase--) { CLR(dp,0); int sum_cost=0, n_bags; scanf("%d",&n_bags); for(int i=0; i<n_bags; ++i) // max:1000 { scanf("%d",&value[i]); sum_cost+=value[i]; } int mid_cost=sum_cost/2; for(int i=0; i<n_bags; ++i) { for(int j=mid_cost; j>=value[i]; --j) { if(dp[j]<=dp[j-value[i]]+value[i]) { dp[j]=dp[j-value[i]]+value[i]; } } } printf("%d\n",sum_cost-2*dp[mid_cost]); } return 0; } /* sample input 3 3 2 3 5 4 1 2 4 6 4 1 4 5 6 sample ouput 0 1 2 */
相关文章推荐
- jquery纯数字验证
- BZOJ 2440 完全平方数(莫比乌斯反演+二分查找)
- zepto window onload
- 统计一个整数的二进制中1的个数(位运算技巧)
- test(),compile(),exec(),match(),search(),replace(),split()
- RichEdit改变行距
- 【生活杂想】谨言慎行
- HDU4355-Party All the Time-三分法(模板)-2012 Multi-University Training Contest 6
- 缓存、缓存算法和缓存框架简介
- JQuery简介
- Oracle Decode()的使用
- 2014 I/O返回:Google连接一切
- 数据结构
- 研究Mac OS中Migration Assistant工具
- Git 常用命令大全
- Space Ant - POJ 1696 (凸包)
- 基础学习day03---程序结构与控制、函数与数组入门
- javascript indexOf() 和lastIndexOf()方法比较
- 【Android】Windows批处理bat,执行adb shell指令
- java之路——输入三个数进行排序