Dp接触不久,先从简单做起
01背包问题
参考网址:http://baike.baidu.com/view/1731915.htm
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int value[1100];
int volume[1100];
int q[1100];
int main()
{
int T,i,j,k;
int n,v;
cin>>T;
for(k=0;k<T;k++)
{
memset(q,0,sizeof(q));
cin>>n>>v;
for(j=0;j<n;j++)
{
cin>>value[j];
}
for(j=0;j<n;j++)
{
cin>>volume[j];
}
for(i=0;i<n;i++)
{
for(j=v;j>=volume[i];j--)
{
if(q[j]<q[j-volume[i]]+value[i])
q[j]=q[j-volume[i]]+value[i];
}
}
cout<<q[v]<<endl;
}
return 0;
}