杭电ACM2191(多重背包)
2015-11-15 16:40
417 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191
题目大意:中文题目。愿逝者安息,愿世界上多一些美好,少一些灾难。
解题思路:根据《背包九讲》的讲解,多重背包可以拆成每一个都是01背包。
AC代码:
题目大意:中文题目。愿逝者安息,愿世界上多一些美好,少一些灾难。
解题思路:根据《背包九讲》的讲解,多重背包可以拆成每一个都是01背包。
AC代码:
#include <iostream> #include <string.h> using namespace std; int main() { int c; int n,m; int cost[105],weight[105],count[105]; int dp[4005]; while(cin>>c) { while(c--) { memset(dp,0,sizeof(dp)); cin>>n>>m; for(int i=0;i<m;i++) { cin>>cost[i]>>weight[i]>>count[i]; } for(int i=0;i<m;i++) { for(int k=1;k<=count[i];k++) { for(int j=n;j>=cost[i];j--) { if(dp[j-cost[i]]+weight[i]>dp[j])dp[j] = dp[j-cost[i]]+weight[i]; } } } cout<<dp <<endl; } } return 0; }
相关文章推荐
- 简单的四则运算
- 数的奇偶性
- ACM网址
- 1272 小希的迷宫
- 1272 小希的迷宫
- hdu 1250 大数相加并用数组储存
- 矩阵的乘法操作
- 蚂蚁爬行问题
- 蚂蚁爬行问题
- 求两个数的最大公约数【ACM基础题】
- 打印出二进制中所有1的位置
- 杭电题目---一只小蜜蜂
- HDOJ 1002 A + B Problem II (Big Numbers Addition)
- 初学ACM - 半数集(Half Set)问题 NOJ 1010 / FOJ 1207
- 初学ACM - 组合数学基础题目PKU 1833
- POJ ACM 1002
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points