HDU 1059 Dividing(dp多重背包)
2016-09-16 19:28
363 查看
// // main.cpp // Richard // // Created by 邵金杰 on 16/9/16. // Copyright © 2016年 邵金杰. All rights reserved. // #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int v[7]; int dp[120000+100]; int main() { int kase=0; while(true) { int sum=0; for(int i=1;i<=6;i++){ scanf("%d",&v[i]); sum+=v[i]*i; } if(sum==0) break; memset(dp,0,sizeof(dp)); printf("Collection #%d:\n",++kase); if(sum&1) {printf("Can't be divided.\n\n");continue;} sum/=2; for(int i=1;i<=6;i++) { int l=v[i],k=1; while(k<l) { for(int j=sum;j>=k*i;j--) dp[j]=max(dp[j],dp[j-k*i]+k*i); l-=k;k<<=1; } for(int j=sum;j>=l*i;j--) dp[j]=max(dp[j],dp[j-l*i]+l*i); } if(dp[sum]!=sum) printf("Can't be divided.\n\n"); else printf("Can be divided.\n\n"); } return 0; }
相关文章推荐
- hdu 1059 Dividing--DP-多重背包问题
- ACM学习历程—HDU 1059 Dividing(dp && 多重背包)
- HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)
- HDU 1059 Dividing 【DP背包】
- hdu 1059 Dividing DP,多重背包 测试数据很水
- DP(完全背包二进制优化) Problem T:Dividing(HDU 1059)
- HDU1059-Dividing-DP(多重背包)
- HDU 1059 Dividing dp背包题解
- HDU-1059 Dividing 多重背包
- hdu 1059 Dividing ——多重背包复习
- HDU 1059 Dividing (多重背包模板题,条件改变,比较灵活)
- hdu 1059 Dividing(多重DP)
- hdu 1059 Dividing (多重背包 )
- HDU1059_Dividing_多重背包
- HDU1059 && POJ1014 :Dividing(多重背包)
- hdu 1059 练习练习dp(多重背包)
- hdu 1059 Dividing(多重DP)
- HDU 1059 Dividing 多重背包
- HDU1059——Dividing多重背包
- HDU 1059 Dividing(多重背包)