uva562 平分纸币
来源:互联网 发布:淘宝销售统计 编辑:程序博客网 时间:2024/04/29 02:01
题目大意:
有一堆纸币要平分给两个人,要求他们两个之间的差值尽量的小。
思路:
类似于背包问题,将纸币的和当作是体积,从sum/2开始逆序减算出最大的重量(即dp[sum/2]),然后利用sum - 2 * dp[i] 得出的就是答案了。
忘记初始化dp WA
代码:
#include <iostream>using namespace std;#include <stdio.h>#include <cstring>int dp[100005],a[100005];int main() { int cases; int n; int sum; scanf("%d",&cases); while(cases--) { sum = 0; scanf("%d",&n); for(int i = 1 ; i <= n ; i ++) { scanf("%d",&a[i]); sum += a[i]; } memset(dp,0,sizeof(dp)); for(int i = 1; i <= n ; i++) { for(int j = sum / 2; j >= a[i]; j--) { dp[j] = max(dp[j],dp[j - a[i]]+a[i]); } } printf("%d\n",sum - 2 * dp[sum / 2]); } return 0;}
0 0
- uva562 平分纸币
- 2、UVA562(平分钱币问题)
- uva562
- uva562
- uva562(DP)
- 纸币问题
- UVA562 Dvide Coins
- UVALive5583 UVA562 Dividing coins
- 平分七筐鱼
- 平分蛋糕
- 平分七筐鱼
- 平分红酒
- UVA562 Dividing coins 动态规划
- uva562 Dividing coins(背包)
- 各种100块纸币
- 纸币的秘密
- 人民币(纸币)检测
- 纸币的组成问题
- c++ 泛型算法
- 性能观察: Trove 集合类
- jeecg 数据修改历史日志对比方法
- iOS数据持久化(-)属性文件
- java线程面试题
- uva562 平分纸币
- CodeForces 622 B. The Time(水~)
- MySQL索引背后的数据结构及算法原理
- hdu1828[扫描线矩形周长并]
- JAVA_接口演示_InterfaceDeamo.java____接口(interface)、默认(default)
- 在 VMware Workstation 安裝 Windows 2012 Hyper-V
- 抽象工厂的特点和使用分析
- c++ 关联容器
- poj 2346(DP)