hdu 0-1背包

题目地址http://acm.hdu.edu.cn/showproblem.php?pid=2602

#include <stdio.h>
#include <string.h>
int main()
{
    int cost[1010],f[1010],va[1010];
    int i,j,k,n,m;
    scanf("%d",&k);
    while(k--)
    {
        memset(f,0,sizeof(f));
        scanf("%d%d",&n,&m);
        for(i=0;i<n;i++)
            scanf("%d",&va[i]);
        for(i=0;i<n;i++)
            scanf("%d",&cost[i]);
        for(i=0;i<n;i++)
        {     for(j=m;j>=cost[i];j--)                                   
              {                                                    //经典部分
                f[j]=f[j]>f[j-cost[i]]+va[i]?f[j]:f[j-cost[i]]+va[i];//放于不放比较
              }
         }
        printf("%d
",f[m]);
    }
    return 0;
}

动态规划之0-1背包经典题加上这个图以便理解

原文地址:https://www.cnblogs.com/ccccnzb/p/3368983.html