1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn=1005; int value[maxn],w[maxn]; int dp[maxn]; int () { int t; scanf("%d",&t); while(t--) { int n,vtot; scanf("%d %d",&n,&vtot); memset(value,0,sizeof(value));memset(w,0,sizeof(w)); for(int i=1;i<=n;i++) scanf("%d",&value[i]); for(int i=1;i<=n;i++) scanf("%d",&w[i]); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) for(int j=vtot;j>=w[i];j--) dp[j]=max(dp[j],dp[j-w[i]]+value[i]); int ans=dp[vtot]; printf("%dn",ans); } return 0; }
|
近期评论