OJ题目 : click here ~~
题目分析:简单的01背包,不解释。
AC_CODE
int N, V, value[1002] , weight[1002];
const int inf = 100000000;
int dp[1002];
int main()
{
int t;
cin >> t;
while(t--)
{
scanf("%d%d",&N , &V);
int i , j;
for(i = 1;i <= N;i++)
scanf("%d",&value[i]);
for(i = 1;i <= N;i++)
scanf("%d",&weight[i]);
memset(dp , 0 , sizeof(dp));//不需要恰好装满
for(i = 1;i <= N;i++)
for(j = V;j >= weight[i];j--)//方向与完全背包相反
dp[j] = max(dp[j] , dp[j - weight[i]] + value[i]);
cout << dp[V] << endl;
}
return 0;
}