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

  • 相关阅读:
    PHP比较操作符
    一个给图片加水印的程序
    PHP开发人员:充实您的XML工具箱
    PHP时间函数
    (Oralce)Web翻页优化实例
    PHP文件操作函数
    PHP图象函数
    PHP逻辑操作符
    PHP位操作符
    PHP目录遍历函数
  • 原文地址:https://www.cnblogs.com/chinacwj/p/7054648.html
Copyright © 2011-2022 走看看