zoukankan      html  css  js  c++  java
  • hdu acm 2191

    这是我第一次碰到背包的题目,做的很烂,还是看过背包九讲的,唉~

    简单的多重背包

    #include "stdio.h"
    #include "string.h"
    #define MAX(a,b) ((a)>(b)?(a):(b))

    int
    dp[90000];

    int
    main()
    {

        int
    T;
        int
    n,m;
        int
    p,w,b;
        int
    i,j,k;

        scanf("%d",&T);
        while
    (T--)
        {

            scanf("%d%d",&n,&m);
            memset(dp,0,sizeof(dp));

            for
    (i=0;i<m;i++)
            {

                scanf("%d%d%d",&p,&w,&b);
                for
    (k=n;k>=0;k--)
                {

                for
    (j=b;j>=0;j--)
                {

                    if
    (j*p<=k)
                    {

                        dp[k]=MAX(dp[k-j*p]+j*w,dp[k]);
                    }
                }
                }
            }


            printf("%d\n",dp[n]);
        }
    }


  • 相关阅读:
    64最长和谐子序列(594)
    63找到字符串中所有字母异位词(438)
    62有效的数独(36)
    10.10
    9.27作业
    9.27
    9.26
    9.25
    9.18学习内容
    9.17作业
  • 原文地址:https://www.cnblogs.com/Shirlies/p/2264105.html
Copyright © 2011-2022 走看看