hdu 2602 Bone Collector dp

0-1背包

View Code
#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;
}



posted @ 2011-11-12 09:34  104_gogo  阅读(124)  评论(0编辑  收藏  举报