呵呵 超级水题
AC代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
inline int max( int a, int b ){
return ( a > b ? a : b );
}
int main(){
int T, N, V;
int dp[1001];
int v[1001], w[1001];
cin >> T;
while( T-- ){
cin >> N >> V;
for( int i = 0; i < N; i++ ){
cin >> v[i];
}
for( int i = 0; i < N; i++ ){
cin >> w[i];
}
memset( dp, 0, sizeof( dp ) );
for( int i = 0; i < N; i++ ){
for( int j = V; j >= w[i]; j-- ){
dp[j] = max( dp[j], dp[j-w[i]] + v[i] );
}
}
cout << dp[V] << endl;
}
return 0;
}