hdu 2602 Bone Collector 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602
题目大意:拾骨者捡骨头。
题目分析:经典0-1背包无坑。
code:
#include<stdio.h>
#include<string.h>
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int sum,n,m,i,j,v[1011],p[1011],t,dp[1011];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
memset(dp,0,sizeof(dp));
for(sum=i=0;i<n;i++)
{
scanf("%d",&p[i]);
sum+=p[i];
}
for(i=0;i<n;i++)
{
scanf("%d",&v[i]);
}
for(i=0;i<n;i++)
{
for(j=m;j>=0;j--)
{
if(j>=v[i])dp[j]=max(dp[j],dp[j-v[i]]+p[i]);
}
}
printf("%d\n",dp[m]);
}
return 0;
}
PS:已水