1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int M=6010; int f[M]; int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) //枚举每种物品 { int v,w,s; cin>>v>>w>>s; for(int j=m;j>=v;j--) //01背包体积从大到小 { for(int k=0;k<=s&&k*v<=j;k++) //枚举第i种物品的选择的个数 { f[j]=max(f[j],f[j-v*k]+w*k); } } } cout<<f[m]<<endl; return 0; }
- 1
Information
- ID
- 992
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 25
- Accepted
- 10
- Uploaded By