标签:ret int 思路 memset style for cstring log 情况
【题目大意】
在资金一定的情况下,给出救难用的每袋大米的重量,价格,袋数。求购买大米的最终重量。
【思路】多重背包。
【复习】多重背包特点。
题目
有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