HDU 2602 Bone Collector——01背包

来源:互联网 发布:arm linux入门 编辑:程序博客网 时间:2024/06/07 06:40
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1000 + 10;int dp[maxn], N, V, w[maxn], v[maxn];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", &w[i]);for (int i = 1; i <= N; i++) scanf("%d", &v[i]);for (int i = 1; i <= N; i++) {for (int j = V; j >= v[i]; j--) {dp[j] = max(dp[j], dp[j - v[i]] + w[i]);}}printf("%d\n", dp[V]);}return 0;}

原创粉丝点击