http://acm.hdu.edu.cn/showproblem.php?pid=2602

题意:一介屌丝喜欢收集各种骷髅头,每个骷髅头都一个体积和价值,这个屌丝有一个袋子体积为V,唉,穷屌丝比较贪,他想收集各种骷髅头放到他的袋子中,要求获得的利润最大。并让你
#include<stdio.h>
int weight[1010];
int value[1010];
int dp[1010];
int max(int a,int b)
{
    return a>b?a:b;
}
int main()
{
    int T;
    int N,V;
    int sum;
    int tem;
    scanf("%d",&T);
    while(T--)
    {
        sum=0;
        scanf("%d%d",&N,&V);
        for(int i=0; i<N; i++)
            scanf("%d",&value[i]);
        for(int i=0; i<N; i++)
        {
            scanf("%d",&weight[i]);
        }
        for(int i=0; i<=V; i++)
            dp[i]=0;
        for(int k=0; k<N;k++)
            for(int j=V;j>=weight[k];j--)
            {
                dp[j]=max(dp[j],dp[j-weight[k]]+value[k]);
            }
            printf("%d\n",dp[V]);
    }
    return 0;
}

把这个最大利润求出来。

你可能感兴趣的:(http://acm.hdu.edu.cn/showproblem.php?pid=2602)