#include <bits/stdc++.h>//please use C++ compiler
#define maxn 1005
//obviously 0-1bags
int main()
{
int T,n,V,i,j,dp[maxn],w[maxn],v[maxn];
scanf("%d",&T);
while(T--)
{
memset(dp,0,sizeof(dp));
scanf("%d%d",&n,&V);
for(i=0; i<n; i++)
scanf("%d",&w[i]);
for(i=0; i<n; i++)
scanf("%d",&v[i]);
for(i=0; i<n; i++)
for(j=V; j>=v[i]; j--)
dp[j]=dp[j]>dp[j-v[i]]+w[i]?dp[j]:dp[j-v[i]]+w[i];
printf("%d\n",dp[V]);
}
return 0;
}
hdu 2602 bone_collector
最新推荐文章于 2022-10-28 13:05:08 发布
本文探讨了背包问题的基本概念,并通过C++代码实现了动态规划算法解决该问题,详细阐述了解题思路和核心步骤。

1万+

被折叠的 条评论
为什么被折叠?



