Uva 562 0-1背包
来源:互联网 发布:福昕阅读器 mac 中文 编辑:程序博客网 时间:2024/06/06 02:34
题意:给你n枚硬币,分成两份,求两份硬币之和的差最小是多少。
分析:求出总的硬币和的一半当做背包容量,然后让背包尽可能装多的硬币,这就装换成了0-1背包问题。这题刚开始没理解题意,数组开小了。。。
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<queue>#include<vector>using namespace std;#define maxn 50002#define INF 0x3f3f3f3fint n,t;int a[maxn];int d[maxn];int main(){ //freopen("f.txt","r",stdin); cin>>t; while(t--){ scanf("%d",&n); int sum=0; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); sum+=a[i]; } int bag=sum/2; memset(d,0,sizeof(d)); for(int i=1;i<=n;i++){ for(int j=bag;j>=a[i];j--){ // d[i][j]=((i==1)?0:d[i-1][j]); d[j]=max(d[j],d[j-a[i]]+a[i]); } } int ans; ans=sum-2*d[bag]; printf("%d\n",ans); }}
0 0
- Uva 562 0-1背包
- uva 562 Dividing coins (0/1背包)
- UVa 562 Dividing coins (0-1背包&等价转化)
- Uva 562 背包DP
- uva 562( 01背包)
- UVA 624 CD 0-1背包问题
- uva 624 CD (0/1背包)
- UVa 624 CD (0-1背包)
- UVa 10130 SuperSale (0-1背包)
- UVa 10664 Luggage (0-1背包)
- UVA 624 CD 0-1背包
- UVA 10130 SuperSale 0-1背包
- Uva 10130-SuperSale(0-1背包)
- UVa 562 - Dividing coins 背包
- uva 624 CD (0-1背包打印路径)
- UVa 624 - CD DP 0/1 背包问题
- Uva 642-CD(0-1背包+打印路径)
- UVa CD 0-1背包且打印路径
- 利用Runtime的Associated进行封装和回调
- brew安装地址变了
- 【SSH项目实战】国税协同平台-34.quartz&CronTrigger
- SharedPreferences
- 关于模态的使用
- Uva 562 0-1背包
- 关于双重锁的问题
- Linux SLUB 分配器详解
- 集群?
- 数据存储之文件存储
- mybatis在xml文件中处理大于号小于号的方法
- 《大话数据结构》之分段查找
- c语言总结
- 复制cmd里面的内容