hdu 1059 Dividing 多重背包
2010-07-10 18:57
465 查看
]/* 又是一道多重背包的题目,其实我对于背包还是不懂,但是凭着记忆的动态方程 居然能打出可以AC的代码,还奇怪的 */ #include <iostream>//00451533 2010-07-10 18:40:39 Accepted 1005 15 MS 412 KB Visual C++ 悔惜晟 #include <cstdio> #include <cstring> using namespace std; const int N = 60005; int main() { int kind[7]; int t = 1; while(1) { int sum = 0; int val = 0; for(int i = 1; i <= 6; i++) { scanf("%d", &kind[i]); kind[i] %= 10;// 这句话没有加就TLE val += i * kind[i]; sum += kind[i]; } if(sum == 0) break; if(val / 2 != val - val / 2) { printf("Collection #%d:/n", t++); printf("Can't be divided./n/n"); continue; } int dp ; memset(dp, 0, sizeof(dp)); for(int i = 1; i <= 6; i++) for(int j = 1; j <= kind[i]; j++) for(int k = val / 2; k >= i; k--) dp[k] = max(dp[k], dp[k - i] + i); if(dp[val / 2] == val - val / 2) { printf("Collection #%d:/n", t++); printf("Can be divided./n/n"); } else { printf("Collection #%d:/n", t++); printf("Can't be divided./n/n"); } } }
相关文章推荐
- DP(完全背包二进制优化) Problem T:Dividing(HDU 1059)
- hdu1059 Dividing 【多重背包】
- HDU 1059 Dividing(多重背包)
- hdu 1059 多重背包问题 Dividing
- hdu1059 Dividing 多重背包
- (step3.3) hdu 1059(Dividing——多重背包)
- 【背包专题】G - Dividing hdu 1059【多重背包】
- hdu 1059 Dividing (多重背包)
- HDU 1059 Dividing (多重背包模板题,条件改变,比较灵活)
- HDU 1059 Dividing(多重背包)
- HDU 1059 Dividing 多重背包
- HDU1059 Dividing(多重背包,二进制优化,模板题)
- hdu 1059 Dividing 多重背包
- ACM学习历程—HDU 1059 Dividing(dp && 多重背包)
- Hdu 1059 Dividing & Zoj 1149 & poj 1014 Dividing(多重背包)
- 【HDU 1059】Dividing 【多重背包 两种解法】
- poj 1014||hdu 1059 dividing(多重背包 二进制优化)
- HDU1059_Dividing【多重背包】【二进制】
- Dividing (hdu 1059 多重背包)
- Dividing (HDU 1059) —— 多重背包