1 solutions
-
0
#include<bits/stdc++.h> using namespace std; int f[1001][1001]; int w[100010],v[100010]; int main(){ int n,m; cin>>m>>n; //01背包 for(int i=1;i<=n;i++){ cin>>w[i]>>v[i];//重量与价值 } for(int i=1;i<=n;i++){ for(int j=m;j>=1;j--){//背包大小(从大到小) f[i][j]=f[i-1][j];//默认不选 if(j>=w[i]){//如果装的下,尝试放入 f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+w[i]*v[i]); } } } cout<<f[n][m]; return 0; }
- 1
Information
- ID
- 60
- Time
- 1000ms
- Memory
- 64MiB
- Difficulty
- 2
- Tags
- # Submissions
- 14
- Accepted
- 9
- Uploaded By