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;
    }

  • 相关阅读:
    二逼平衡树(树套树)
    NOI2010 超级钢琴
    SDOI2011 消耗战
    HNOI2013 游走
    [SDOI2010]外星千足虫
    [UVA 11374]Airport Express
    [Luogu P1354]房间最短路问题
    [Luogu P2296][NOIP 2014]寻找道路
    高精度算法
    洛谷红名+AC150祭
  • 原文地址:https://www.cnblogs.com/chinacwj/p/7054648.html
Copyright © 2011-2022 走看看