hdu 2602 Bone Collector dp
0-1背包
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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,a,val[1005],dp[1005];
scanf("%d",&T);
while (T--)
{
scanf("%d%d",&n,&V);
memset(dp,0,sizeof(dp));
for (i=0;i<n;i++)scanf("%d",&val[i]);
for (i=0;i<n;i++)
{
scanf("%d",&a);
for (j=V;j>=a;j--)
{
dp[j]=max(dp[j],dp[j-a]+val[i]);
}
}
printf("%d\n",dp[V]);
}
return 0;
}