uva562 平分纸币
2016-02-25 19:06
330 查看
题目大意:
有一堆纸币要平分给两个人,要求他们两个之间的差值尽量的小。
思路:
类似于背包问题,将纸币的和当作是体积,从sum/2开始逆序减算出最大的重量(即dp[sum/2]),然后利用sum - 2 * dp[i] 得出的就是答案了。
忘记初始化dp WA
代码:
有一堆纸币要平分给两个人,要求他们两个之间的差值尽量的小。
思路:
类似于背包问题,将纸币的和当作是体积,从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; }
相关文章推荐
- DELPHI 通過窗口句柄或窗口标题得到进程句柄
- 六:ZooKeeper的java客户端api的使用
- iOS数据持久化(-)属性文件
- java线程面试题
- 性能观察: Trove 集合类
- c++ 泛型算法
- TObject简要说明-对象的创建流程
- HTTP相关
- iOS-原生网络请求
- CodeForces 622 A. Infinite Sequence(水~)
- 上下界网络流学习小记
- Ubuntu 下快速部署安装 Apache + PHP + MySQL + phpMyAdmin 笔记
- Dubbo应用学习(1)
- 169. Majority Element
- delphi指针简单入门
- 为什么jdbctemplate是线程安全的
- java项目中使用Sigar获取系统信息
- 自定义ListView item包含checkbox实现单选和多选
- 高通平台手机开发之刷机包脚本
- Delphi 能不能从Ring 3进入Ring 0