zstu 1032 拆分物品 再01背包
来源:互联网 发布:sm3算法 编辑:程序博客网 时间:2024/05/18 18:22
判断能不能将总的物品分两半,中间拆分的时候有点多重背包的思想
#include<iostream>#include<string>#include<algorithm>using namespace std;int value[1005];int dp[60005];int num[7];int main(){ int i,j,d,ans,sum,ncase=1; while(scanf("%d%d%d%d%d%d",&num[1],&num[2],&num[3],&num[4],&num[5],&num[6])!=EOF) { if(num[1]==0&&num[2]==0&&num[3]==0&&num[4]==0&&num[5]==0&&num[6]==0) break; d=sum=0; for(i=1;i<=6;i++) { sum+=num[i]*i; j=1; while(j<=num[i]) { num[i]-=j; value[d++]=j*i; j*=2; } if(num[i]>0) value[d++]=num[i]*i; } printf("Collection #%d:\n",ncase++); if(sum%2==1) { printf("Can't be divided.\n\n"); continue; } ans=sum/2; memset(dp,0,sizeof(dp)); dp[0]=1; for(i=0;i<d;i++) for(j=ans;j>=value[i];j--) if(dp[j-value[i]]) dp[j]=1; if(dp[ans]) printf("Can be divided.\n\n"); else printf("Can't be divided.\n\n"); } return 0;}
- zstu 1032 拆分物品 再01背包
- 【POJ1014】Dividing 多重背包,二进制物品拆分转01背包
- 可拆分物品背包问题
- 输出01背包内物品的程序
- 背包问题-泛化物品
- 物品选取_ssl2572_背包
- 01背包基础详解(附求解选择的物品)
- C++ 01背包动态规划实现并输出选中物品
- Bottles(选择k个物品的01背包)
- HDU5890_Eighty seven_排除物品的01背包&&bitset
- 背包系列第二篇----01背包(求解最大价值时背包的物品)
- 泛化物品的背包问题
- 物品存储与背包系统
- 物品存储与背包系统
- 物品无限的背包问题
- 完全背包问题 打印背包中的物品
- 背包问题——“01背包”详解及实现(包含背包中具体物品的求解)
- 背包问题——“01背包”详解及实现(包含背包中具体物品的求解)
- poj 2723 2-sat
- poj 2536 二分匹配
- poj 2537 DP
- 关于分组背包
- hdu 3535 终极版解题报告
- zstu 1032 拆分物品 再01背包
- poj 1384 完全背包
- poj 1252 完全背包
- poj 3468 A Simple Problem with Integers
- poj 2063 多次完全背包
- hdu 3183 RMQ
- nlogn 最长不下降子序列
- jquery checkbox多选最简单的写法
- poj 3260 hdu 3591 多重背包+完全背包