1 条题解
-
0
这道题是完全背包问题的模板题
是物品种数, 是背包容量。 是第 种物品的体积, 是第 种物品的价值。我们枚举 种物品,第 种物品枚举它的体积,直到背包装不下,但是不可以从 开始,因为第 件物品最小的体积就是 。
对于每个物品,我们可以选择取或者不取,状态 表示背包容量为 可以装下的最大价值
1、不取 => ,状态不变
2、取 =>
zj 认为讲的不好,附上视频链接:AcWing 3. 完全背包问题(闫氏DP分析法) - AcWing
#include <bits/stdc++.h> int v[1010], w[1010]; int f[1010]; int main() { int n, m; std::cin >> n >> m; for (int i = 1; i <= n; i ++) { std::cin >> v[i] >> w[i]; } for (int i = 1; i <= n; i ++) { for (int j = v[i]; j <= m; j ++) { f[j] = std::max(f[j], f[j - v[i]] + w[i]); } } std::cout << f[m] << std::endl; return 0; }
- 1
信息
- ID
- 98
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 20
- 已通过
- 15
- 上传者