UVa 562 Dividing coins
2015-10-27 22:58
363 查看
题目连接
题目大意:有一堆硬币,要设法平均分成价值相等的两份,输出两份相差的价值。
思路:所有硬币的总价钱的一半看成容量v,使之装的价值最高,即转化为01背包问题,最后总价钱减去背包的价值的两倍即可。
题目大意:有一堆硬币,要设法平均分成价值相等的两份,输出两份相差的价值。
思路:所有硬币的总价钱的一半看成容量v,使之装的价值最高,即转化为01背包问题,最后总价钱减去背包的价值的两倍即可。
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <algorithm> using namespace std; int dp[100000]; int main() { int m; int i,j,k,v; int coin[105]; int n,sum; scanf("%d",&m); while(m--) { scanf("%d",&n); sum=0; for(i=1;i<=n;i++) { scanf("%d",&coin[i]); sum+=coin[i]; } v=sum/2; memset(dp,0,sizeof(dp)); for(i=n;i>0;i--) { for(j=v;j>=coin[i];j--) dp[j]=max(dp[j],dp[j-coin[i]]+coin[i]); } printf("%d\n",sum-2*dp[v]); } return 0; }
相关文章推荐
- ps滤镜简单打造布料纹理效果
- JavaScript高级程序设计之DOM之节点层次之Document类型第10.1.2讲
- java代码安全性
- 基于曲线方向(梯度)变化的角点检测方法
- android中webview的加载速度影响其他的控件更新问题
- fs4412开发板学习笔记(一)
- strcpy函数
- POJ 1269 Intersecting Lines (判断直线是否相交)
- iOS程序模块化设计
- angularjs 路由的使用
- Qlist排序【依据其中每一项的字符串大小】
- “the vm session was closed before any attempt to power it on”的一种解决方法
- 计算机二,八,十,十六进制转换
- Gabor小波变换滤波器原理与创建
- 【转】作为程序员最应该投资的是这十件事
- ZigBee 广播
- LightOJ - 1021 Painful Bases(状压DP)
- Codeforces Round #327 (Div. 2) C. Median Smoothing
- IOS开发基础知识--碎片26
- 用Django制作第一个网页