01背包最裸模板题
#include#include #include #define MAXN 1005using namespace std;int N, V, p[MAXN], v[MAXN], dp[MAXN];inline int max(int x, int y){ return x > y ? x : y;}void zobag(int x){ for (int i = V; i >= v[x]; --i) { dp[i] = max(dp[i], dp[i-v[x]]+p[x]); }}int DP(){ for (int i = 1; i <= N; ++i) { zobag(i); } return dp[V];}int main(){ int T; scanf("%d", &T); while (T--) { memset(dp, 0, sizeof (dp)); scanf("%d %d", &N, &V); for (int i = 1; i <= N; ++i) { scanf("%d", &p[i]); } for (int i = 1; i <= N; ++i) { scanf("%d", &v[i]); } printf("%d\n", DP()); } return 0;}