HDU2062题解 01背包而已

RT,我就不解释了,题目连接http://acm.hdu.edu.cn/showproblem.php?pid=2602。

初学01背包的人可以做做

#include<iostream>
#include<cstdio>
#include<iostream>
#include<cstring>
#define maxn 1005
using namespace std;

int ti[maxn], jia[maxn], p[maxn];
int main()
{
    int d;

    cin >> d;
    while(d --)
    {
        int n, v;
        scanf("%d%d", &n, &v);

        int i;
        for(i = 1; i <= n; i ++)
            scanf("%d", &jia[i]);
        for(i = 1; i <= n; i ++)
            scanf("%d", &ti[i]);

        memset(p, 0, sizeof(p));

        for(i = 1; i <= n; i ++)
            for(int j = v; j >= ti[i]; j --)
                p[j] = max(p[j], p[j - ti[i]] + jia[i]);
        printf("%d\n", p[v]);
    }
    return 0;
}


posted @ 2014-04-27 21:37  MrYu4  阅读(7)  评论(0编辑  收藏  举报