1 条题解
-
0
C++ :
#include <bits/stdc++.h> using namespace std; int v[110],w[110],f[110],s[110]; int main() { int n,m; cin>>n>>m; for(int i = 1;i <= n;i++){ cin>>v[i]>>w[i]>>s[i]; } //循环i件物品 for(int i = 1; i <= n; i++) { //每种物品有si件,可以认为有s[i]个物品 for(int k = 1;k <= s[i];k++){ //逆序循环背包容量,转换为01背包 for(int j = m;j >= v[i];j--){ f[j] = max(f[j],f[j-v[i]]+w[i]); } } } cout<<f[m]; }
- 1
信息
- ID
- 2758
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 1
- 上传者