hdoj2602_Bone Collector

#include<stdio.h>
#include<string.h>
#define maxn 1100
int max(int a,int b)
{
 return a>b?a:b;
}
int main()
{
 int i,j,Case;
 int bags,total;
 int weight[maxn],value[maxn],f[maxn];
 scanf("%d",&Case);
 while(Case--)
 {
  scanf("%d%d",&bags,&total);
  memset(f,0,sizeof(f));
  for(i=1;i<=bags;i++)
   scanf("%d",&value[i]);
  for(i=1;i<=bags;i++)
   scanf("%d",&weight[i]);
  for(i=1;i<=bags;i++)
  {
   for(j=total;j>=weight[i];j--)
   {
    f[j]=max(f[j],f[j-weight[i]]+value[i]);
   }
  }
   printf("%d\n",f[total]);
 }
 return 0;
 
}
 

你可能感兴趣的:(01背包问题)