链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602
简单01背包
#include <iostream>
#define MAX( a, b ) ((a>b)?(a):(b))
using namespace std;
typedef struct
{
int value;
int weight;
}bone;
__int64 dp[1005];
bone data[1005];
int main()
{
int t;
int i,j;
int n,v;
cin>>t;
while(t--)
{
cin>>n>>v;
for (i=0;i<=v;i++)
dp[i]=0;
for(i=0;i<n;i++)
cin>>data[i].value;
for (i=0;i<n;i++)
cin>>data[i].weight;
for (i=0;i<n;i++)
for(j=v;j>=data[i].weight;j--)
dp[j]=MAX(dp[j],dp[j-data[i].weight]+data[i].value);
cout<<dp[v]<<endl;
}
return 0;
}