HDU - 2602 Bone Collector

来源:互联网 发布:拉依达准则 c语言 编辑:程序博客网 时间:2024/06/14 22:03

题目大意: 一个叫做Bone Collector的男的有一个包,往包里放东西,使得其价值最大。

解题思路:01背包

#include <cstdio>#include <algorithm>using namespace std;int main() {    int T;    scanf("%d", &T);    while (T--) {        int N, V, A[1010], B[1010], DP[1010] = {0};        scanf("%d%d", &N, &V);        for (int i = 0; i < N; i++)            scanf("%d", &A[i]);        for (int i = 0; i < N; i++)            scanf("%d", &B[i]);        for (int i = 0; i < N; i++)            for (int j = V; j >= B[i]; j--)                DP[j] = max(DP[j], DP[j-B[i]] + A[i]);        printf("%d\n", DP[V]);    }    return 0;}
0 0