码迷,mamicode.com
首页 > 其他好文 > 详细

hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

时间:2014-08-01 18:48:42      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   div   

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191

题目意思:有 资金 n 和 m 种类型的大米,对第 i 种类型的大米,价格、数量、袋数分别是: pi,  hi, ci,问最多能采购的大米的重量是多少。

      多重背包入门题~~~~~~

      在01 背包中两重循环之间多了一重循环  0 ~ bag[i] :表示第 i 种物品的数量从0~bag[i] 枚举。

    

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5 
 6 const int maxn = 200 + 5;
 7 
 8 int w[maxn], v[maxn], num[maxn];
 9 int dp[maxn];
10 
11 int main()
12 {
13     int T, money, kind;
14     while (scanf("%d", &T) != EOF)
15     {
16         while (T--)
17         {
18             scanf("%d%d", &money, &kind);
19             for (int i = 0; i < kind; i++)
20                 scanf("%d%d%d", &v[i], &w[i], &num[i]);
21             memset(dp, 0, sizeof(dp));
22             for (int i = 0; i < kind; i++)
23             {
24                 for (int j = 0; j < num[i]; j++)    // 多了这个循环!!!
25                 {
26                     for (int k = money; k >= v[i]; k--)
27                         dp[k] = max(dp[k], dp[k-v[i]] + w[i]);
28                 }
29             }
30             printf("%d\n", dp[money]);
31         }
32     }
33     return 0;
34 }

 

hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活,布布扣,bubuko.com

hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

标签:style   blog   http   color   os   io   for   div   

原文地址:http://www.cnblogs.com/windysai/p/3885343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!