hdu 2602:
#include <stdio.h>
#include <iostream> #include <string.h> using namespace std; int main() { int w[10005]; int v[10005]; int dp[10005]; int T; scanf("%d",&T); while(T--) { memset(w,0,sizeof(w)); memset(v,0,sizeof(v)); memset(dp,0,sizeof(dp)); int n,m; scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&v[i]); for(int i=1;i<=n;i++) scanf("%d",&w[i]); for(int i=1;i<=n;i++) { for(int j=m;j>=w[i];j--) { dp[j]=max(dp[j-w[i]]+v[i],dp[j]); } } cout<<dp[m]<<endl; } return 0; }