Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
114010 | 江婉儿 | 0/1背包 | C++ | 通过 | 100 | 0 MS | 272 KB | 398 | 2023-12-05 13:37:42 |
#include<bits/stdc++.h> using namespace std; int m,n,w[500],v[500],f[500][500]; int max(int a,int b) { if(a>b) return a; return b; } int main() { cin>>m>>n; for(int a=1;a<=n;a++) cin>>w[a]>>v[a]; for(int a=1;a<=n;a++) { for(int b=m;b>=1;b--) { if(b>=w[a]) f[a][b]=max(f[a][b],(f[a][b-w[a]]+v[a])); f[a+1][b]=f[a][b]; } } cout<<f[n][m]; return 0; }