hdu 2602 Bone Collector (01背包)

点击打开链接

#include<stdio.h>
#include<string.h>
int max(int a,int b)
{
	return a>b?a:b;
}
int main()
{
	int t,i,j,n,V,price[1001],volume[1001],v[1001];
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&n,&V);
		for(i=1;i<=n;i++)
			scanf("%d",&price[i]);
		for(i=1;i<=n;i++)
			scanf("%d",&volume[i]);
		memset(v,0,sizeof(v));
		for(i=1;i<=n;i++)
			for(j=V;j>=volume[i];j--)
				v[j]=max(v[j],v[j-volume[i]]+price[i]);
			printf("%d\n",v[V]);
	}
	return 0;




你可能感兴趣的:(hdu 2602 Bone Collector (01背包))