zoukankan      html  css  js  c++  java
  • dp之多重背包(未用二进制优化)

    hdu 2191:

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    using namespace std;
    int main()
    {
        int T;
        scanf("%d",&T);
        int num[1005];
        int weight[1005];
        int cost[1005];
        int dp[1005];
        while(T--)
        {
            memset(dp,0,sizeof(dp));
            int n,m;
            scanf("%d %d",&n,&m);
            for(int i=0;i<m;i++)
            {
                scanf("%d %d %d",&cost[i],&weight[i],&num[i]);
            }
            for(int i=0;i<m;i++)
            {
                for(int k=0;k<num[i];k++)//当前i这个这个物体有多少件
                {
                    for(int j=n;j>=cost[i];j--)
                    {
                        dp[j]=max(dp[j],dp[j-cost[i]]+weight[i]);
                    }    
                }    
            }
            cout<<dp[n]<<endl;
        }
        return 0;
    }

  • 相关阅读:
    var、let、const
    面向女朋友自我介绍
    ES6——class
    一个错误引发的——对异步回调与for循环(小白错误,大神勿进)
    关于this
    关于作用域
    HTML5 8
    HTML5 7
    HTML5 6
    HTML5 4
  • 原文地址:https://www.cnblogs.com/chinacwj/p/7054648.html
Copyright © 2011-2022 走看看