码迷,mamicode.com
首页 > 其他好文 > 详细

hdu_2602

时间:2015-02-17 12:46:58      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

#include <cstdio>
#include <cstring>
#include <algorithm>

#define MAXN 1111

int T, N, V, value[MAXN], cost[MAXN], dp[MAXN];
// dp[i] 代表 背包剩余体积为i的时候,已有价值为dp[i]

int main(int argc, char const *argv[])
{
    // freopen("in", "r", stdin);
    scanf("%d", &T);
    while(T--){
        scanf("%d%d", &N, &V);
        for(int i = 1; i <= N; ++i)
            scanf("%d", value+i);
        for(int i = 1; i <= N; ++i)
            scanf("%d",cost+i);
        memset(dp, 0, sizeof(dp));
        // 
        for(int i = 1; i <= N; ++i)
            for(int j = V; j >= cost[i]; --j)
                dp[j] = std::max(dp[j], dp[j - cost[i]] + value[i]);
        printf("%d\n", dp[V]);
    }
    return 0;
}

 

hdu_2602

标签:

原文地址:http://www.cnblogs.com/takeoffyoung/p/4295094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!