HDU - 2602 Bone Collector

https://vjudge.net/problem/HDU-2602

01背包模板题

#include<iostream>
#include<algorithm>
#include<cstring>
#define open ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);
using namespace std;
const int N=1010,M=1010;
int n,m;
int w[N],v[N];
int f[M];
int main()
{
	open;
	int t;
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		for(int i=1;i<=n;i++) cin>>w[i];
		for(int i=1;i<=n;i++) cin>>v[i];
		
		memset(f,0,sizeof f);
		for(int i=1;i<=n;i++)
			for(int j=m;j>=v[i];j--)
				f[j]=max(f[j],f[j-v[i]]+w[i]);
		cout<<f[m]<<"\n";
	}
	return 0;
}
posted @ 2021-07-30 10:18  斯文~  阅读(19)  评论(0)    收藏  举报

你好!