HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)

来源:互联网 发布:淘宝开学季文案 编辑:程序博客网 时间:2024/05/22 03:09
////  main.cpp//  Richard////  Created by 邵金杰 on 16/9/15.//  Copyright © 2016年 邵金杰. All rights reserved.//#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=100+10;int p[maxn],h[maxn],c[maxn],dp[maxn];int main(){    int t;    scanf("%d",&t);    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",&p[i],&h[i],&c[i]);        for(int i=0;i<m;i++)        {            int l=c[i],k=1;            while(l>k)            {                for(int j=n;j>=k*p[i];j--)                    dp[j]=max(dp[j],dp[j-k*p[i]]+k*h[i]);                l-=k;k<<=1;            }            for(int j=n;j>=l*p[i];j--)                dp[j]=max(dp[j],dp[j-l*p[i]]+l*h[i]);        }        cout<<dp[n]<<endl;    }    return 0;}

0 0
原创粉丝点击