HDU 2602 - Bone Collector

传送门

HDU 2602 - Bone Collector

代码

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 1000 + 100;

struct BONE
{
    unsigned int volumn, value;
}bone[MAXN];

unsigned int dp[MAXN];

int main()
{
    //freopen("input.txt", "r", stdin);
    int T, i, j, n, vol;
    scanf("%d", &T);
    while (T--)
    {
        memset(dp, 0, sizeof(dp));
        scanf("%d%d", &n, &vol);
        for (i = 0; i < n; i++)
            scanf("%d", &bone[i].value);
        for (i = 0; i < n; i++)
            scanf("%d", &bone[i].volumn);
        for (i = 0; i < n; i++)
            for (j = vol; j >= 0; j--)
                if (j >= bone[i].volumn)
                    dp[j] = max(dp[j], dp[j - bone[i].volumn] + bone[i].value);
        printf("%u\n", dp[vol]);
    }
    return 0;
}

Powered by Jekyll and Theme by solid