1 solutions
-
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
Information
- ID
- 10384
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By