AC_4. 多重背包问题 I
Posted gcter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AC_4. 多重背包问题 I相关的知识,希望对你有一定的参考价值。
代码:
//多重背包问题 /* f[i] 总体积是i的情况下,最大价值是多少 for (int i = 0;i<n;i++) for(int j = V;j>=v[i];j--) f[j] = max(f[j],f[j-v[i]]+w[i],f[j-2*v[i]]+2*w[i]...) 1.f[i] = 0 f[V] 2.f[0] = 0 ,f[i] = inf, i != 0 max(f[0...m]) */ #include<iostream> #include<cstring> #include<algorithm> using namespace std; int N, V;//物品数和背包容量 const int NUM = 1005; int dp[NUM]; int main() cin >> N >> V; for (int i = 0; i < N; i++) int v, w, n;//输入每件物品的体积 价值 和 个数 cin >> v >> w >> n; for (int j = V; j >= 0; j--)//枚举所有的体积 for (int k = 0; k <= n && k*v<=j; k++)//看看每个体积下的价值最大是多少 dp[j] = max(dp[j], dp[j - k*v] + k*w);//在计算的过程中每次存储最大价值 cout << dp[V] << endl; return 0;
以上是关于AC_4. 多重背包问题 I的主要内容,如果未能解决你的问题,请参考以下文章