Files
python/TangDou/KaoShi/多重背包.cpp
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

28 lines
727 B
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <bits/stdc++.h>
using namespace std;
//多重背包问题每件物品的数量是有限制的不是无穷也不是只有1个。
// 状态表示 集合,属性
// 状态计算
const int N = 110;
int n, m;
int v[N], w[N], s[N];
int f[N];
int main() {
//优化输入
ios::sync_with_stdio(false);
cin >> n >> m;
for (int i = 1; i <= n; i++) cin >> v[i] >> w[i] >> s[i];
for (int i = 1; i <= n; i++)
for (int j = m; j >= 0; j--)
for (int k = 0; k <= s[i] && k * v[i] <= j; k++) //穷举所有可能性,尝试拿到最大的合理值
f[j] = max(f[j], f[j - v[i] * k] + w[i] * k);
cout << f[m] << endl;
return 0;
}