UVA-562 Dividing coins---01背包+平分钱币
题目链接:
https://vjudge.net/problem/UVA-562
题目大意:
给定n个硬币,要求将这些硬币平分以使两个人获得的钱尽量多,求两个人分到的钱最小差值
思路:
它所给出的n个钱币加起来sum,将sum/2当作体积,求出在sum/2下的最大值,sum-2*dp[sum/2]
#include<bits/stdc++.h>
using namespace std;
const int maxn = ;
const int maxm = 1e5+;
int a[maxn];
int dp[maxm];
int T, n, m;
int main()
{
cin >> T;
while(T--)
{
cin >> n;
int sum = ;
memset(dp, , sizeof(dp));
for(int i = ; i < n; i++)cin >> a[i], sum += a[i];
for(int i = ; i < n; i++)
{
for(int j = sum / ; j >= a[i]; j--)
dp[j] = max(dp[j], dp[j - a[i]] + a[i]);
}
cout<<(sum - * dp[sum / ])<<endl;
}
return ;
}
UVA-562 Dividing coins---01背包+平分钱币的更多相关文章
- UVA 562 Dividing coins (01背包)
		
//平分硬币问题 //对sum/2进行01背包,sum-2*dp[sum/2] #include <iostream> #include <cstring> #include ...
 - UVA 562 Dividing coins --01背包的变形
		
01背包的变形. 先算出硬币面值的总和,然后此题变成求背包容量为V=sum/2时,能装的最多的硬币,然后将剩余的面值和它相减取一个绝对值就是最小的差值. 代码: #include <iostre ...
 - UVA 562 Dividing coins(dp + 01背包)
		
Dividing coins It's commonly known that the Dutch have invented copper-wire. Two Dutch men were figh ...
 - uva 562 Dividing coins(01背包)
		
Dividing coins It's commonly known that the Dutch have invented copper-wire. Two Dutch men were f ...
 - UVA 562 Dividing coins 分硬币(01背包,简单变形)
		
题意:一袋硬币两人分,要么公平分,要么不公平,如果能公平分,输出0,否则输出分成两半的最小差距. 思路:将提供的整袋钱的总价取一半来进行01背包,如果能分出出来,就是最佳分法.否则背包容量为一半总价的 ...
 - UVA 562 Dividing coins (01背包)
		
题意:给你n个硬币,和n个硬币的面值.要求尽可能地平均分配成A,B两份,使得A,B之间的差最小,输出其绝对值.思路:将n个硬币的总价值累加得到sum, A,B其中必有一人获得的钱小于等于sum/2 ...
 - UVa 562 - Dividing coins 均分钱币 【01背包】
		
题目链接:https://vjudge.net/contest/103424#problem/E 题目大意: 给你一堆硬币,让你分成两堆,分别给A,B两个人,求两人得到的最小差. 解题思路: 求解两人 ...
 - UVA 562 Dividing coins【01背包 / 有一堆各种面值的硬币,将所有硬币分成两堆,使得两堆的总值之差尽可能小】
		
It's commonly known that the Dutch have invented copper-wire. Two Dutch men were fighting over a nic ...
 - uva562 Dividing coins   01背包
		
link:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
 - UVA 562 Dividing coins
		
题目描述:给出一些不同面值的硬币,每个硬币只有一个.将这些硬币分成两堆,并且两堆硬币的面值和尽可能接近. 分析:将所有能够取到的面值数标记出来,然后选择最接近sum/2的两个面值 状态表示:d[j]表 ...
 
随机推荐
- 什么是DOM,DOM level 1\2\3 的区别是什么
			
DOM 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.Document Object Model的历史可以追溯至1990年 ...
 - IT连创业系列:产品设计之答题模块
			
前言: 距上篇写完:IT连创业系列:新的一年,先淫文一篇! 转眼又两个星期了,今天不写文,估计大伙又得等两周了. 所以啊~~ 只能再努力一点了,花一天半天的,继续和大伙分享这让人心碎的创业历程. 这两 ...
 - 【Linux】积累笔记
			
■ 关于查看系统的一些版本信息 查看系统的发行版本可以用 cat /etc/issue 或者 cat /etc/redhat-release (Centos上) 查看系统的内核版本以及系统位数 una ...
 - linux服务器中毒可疑进程sfewfesfs CPU80%
			
我用的是wdlinux, 难免会有漏洞,不知怎么就被莫名其妙地给入侵了,而且还频繁发包.下面是我查看攻击机器的整个过程. 首先跟客户要了root密码登录看,第一个命令是就top cd /proc/25 ...
 - 计时器setInterval()-慕课网
			
计时器setInterval() 在执行时,从载入页面后每隔指定的时间执行代码. 语法: setInterval(代码,交互时间); 参数说明: 1. 代码:要调用的函数或要执行的代码串. 2. 交互 ...
 - linux挂载windows共享文件夹
			
1.建立共享文件夹 2.在linux中挂载共享目录 #mount -t cifs -o username=administrator,password=你的系统账号密码 //192.168.0.22/ ...
 - 接口登录CSDN发布博客---封装方法,使用unittest框架
			
一个简单的跑接口流程:登录后发表带图片的博客.这里涉及到的知识点: 1.登录时通过cookies去保持登录状态,把cookies添加到一个session中,这样可以保持长时间登录状态: 2.我们通过爬 ...
 - eoLinker API-Shop 抓住区块链机遇,从这些API开始
			
区块链是分布式存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.所谓共识机制是区块链系统中实现不同节点之间建立信任.获取权益的数学算法. 区块链目前分为三类: 公有区块链(PublicB ...
 - Oracle查询用户权限
			
Oracle查询用户权限 -- 确定角色的权限select * from role_tab_privs ; 包含了授予角色的对象权限select * from role_ro ...
 - C++类型萃取
			
stl中的迭代器和C++中的类型萃取: http://www.itnose.net/detail/6487058.html 赐教!