蒟蒻不知道怎么错了,学校oj死活过不去。
(就是纯粹的01背包模板)
代码:
#include<bits/stdc++.h>
using namespace std;
int f[1003][103];
int n;
int size;
int w[1003];
int v[1003];
int main(){
cin>>size>>n;
for(register int i=1;i<=n;++i){
cin>>v[i]>>w[i];
}
for(register int i=1;i<=n;++i){
for(register int j=0;j<=size;++j){
f[i][j]=f[i-1][j];
if(j-v[i]>=0){
f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i]);
}
}
}
int res=-1;
for(register int i=1;i<=n;++i){
for(register int j=1;j<=size;++j){
res=max(res,f[i][j]);
}
}
cout<<res;
return 0;
}
一部分记录:
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 4ms
memory: 3308kb
input:
100 5
77 92
22 22
29 87
50 46
99 90
output:
133
result:
ok "133"
Test #2:
score: 0
Wrong Answer
time: 4ms
memory: 3308kb
input:
200 8
79 83
58 14
86 54
11 79
28 72
62 52
15 48
68 62
output:
265
result:
wrong answer 1st words differ - expected: '334', found: '265'
Test #3:
score: 0
Wrong Answer
time: 4ms
memory: 3456kb
input:
300 10
95 89
75 59
23 19
73 43
50 100
22 72
6 44
57 16
89 7
98 64
output:
299
result:
wrong answer 1st words differ - expected: '388', found: '299'