点击打开链接
#include<stdio.h> #include<string.h> int max(int a,int b) { return a>b?a:b; } int main() { int t,i,j,n,V,price[1001],volume[1001],v[1001]; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&V); for(i=1;i<=n;i++) scanf("%d",&price[i]); for(i=1;i<=n;i++) scanf("%d",&volume[i]); memset(v,0,sizeof(v)); for(i=1;i<=n;i++) for(j=V;j>=volume[i];j--) v[j]=max(v[j],v[j-volume[i]]+price[i]); printf("%d\n",v[V]); } return 0;