題目:
這是一個最基本的揹包問題,水題一個。。。
代碼:
#include<stdio.h>
#include<string.h>
main()
{
int f[1010];
int i;
int m[1010],w[1010];
int t;
int n,V,v;
scanf("%d",&t);
for(;t;t--)
{
memset(f,0,sizeof(f));
scanf("%d%d",&n,&V);
for(i=0;i<n;i++)
{
scanf("%d",&w[i]);
}
for(i=0;i<n;i++)
{
scanf("%d",&m[i]);
}
for(i=0;i<n;i++)
{
for(v=V;v>=m[i];v--)
{
if(f[v]<f[v-m[i]]+w[i])
f[v]=f[v-m[i]]+w[i];
}
}
printf("%d\n",f[V]);
}
}