购物网站开发的难点,网站建设公司咨询,纯html网站,百度seo排名优化提高流量【题目描述】 一个旅行者有一个最多能装V#xfffd;公斤的背包#xff0c;现在有n#xfffd;件物品#xff0c;它们的重量分别是W1#xfffd;1#xff0c;W2#xfffd;2#xff0c;...,Wn#xfffd;#xfffd;#xff0c;它们的价值分别为C1#xfffd;1,C2公斤的背包现在有n件物品它们的重量分别是W11W22...,Wn它们的价值分别为C11,C22...Cn。有的物品只可以取一次(0101背包)有的物品可以取无限次完全背包)有的物品可以取的次数有一个上限(多重背包)。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量且价值总和最大。 【输入】 第一行:二个整数M(背包容量M≤200≤200)N(物品数量N≤30≤30); 第22..N11行:每行三个整数Wi,Ci,Pi前两个整数分别表示每个物品的重量价值第三个整数若为00则说明此物品可以购买无数件若为其他数字则为此物品可购买的最多件数(P)。 【输出】 仅一行一个数表示最大总价值。 【输入样例】
10 3
2 1 0
3 3 1
4 5 4
【输出样例】
11
#includebits/stdc.h//gezhengxu2024
using namespace std;
int W,n;
int w[35],v[35],c[35];
int dp[205];
int main()
{cinWn;int i,j,k;for(i1;in;i){cinw[i]v[i]c[i];if(c[i]0){c[i]99999;}}for(i1;in;i){for(jW;jw[i];j--){for(k1;kmin(j/w[i],c[i]);k){dp[j]max(dp[j],dp[j-k*w[i]]k*v[i]);//gezhengxu2024}}}coutdp[W];return 0;
}