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

悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(复习多重背包)

时间:2017-06-18 18:58:55      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:ret   int   思路   memset   style   for   cstring   log   情况   

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

传送门

【题目大意】

在资金一定的情况下,给出救难用的每袋大米的重量,价格,袋数。求购买大米的最终重量。

【思路】多重背包。

【复习】多重背包特点。

题目 
N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 

【code】

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int t,mon,k,w[102],pri[102],f[102],cnt[102];
int main()
{
    scanf("%d",&t);
    while(t--)
    {
        memset(f,0,sizeof(f));
        scanf("%d%d",&mon,&k);
        for(int i=1;i<=k;i++)
        scanf("%d%d%d",&pri[i],&w[i],&cnt[i]);
        for(int i=1;i<=k;i++)
        {
            for(int j=mon;j>=pri[i];j--)
            {
                for(int h=0;h<=cnt[i];h++)
                {
                    if(j-h*pri[i]<0)break;
                    f[j]=max(f[j],f[j-h*pri[i]]+h*w[i]);
                }
            }
        }
        printf("%d\n",f[mon]);
    }
    return 0;
}

 

悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(复习多重背包)

标签:ret   int   思路   memset   style   for   cstring   log   情况   

原文地址:http://www.cnblogs.com/zzyh/p/7044883.html

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