关于01背包
  • 板块学术版
  • 楼主mushroom_knight
  • 当前回复33
  • 已保存回复33
  • 发布时间2020/7/5 13:28
  • 上次更新2023/11/6 23:37:33
查看原帖
关于01背包
338786
mushroom_knight楼主2020/7/5 13:28

蒟蒻不知道怎么错了,学校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'
2020/7/5 13:28
加载中...