HDU 2191

多重背包模板题

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int v[110],w[110];
int f[110],num[110];
int main()
{
    int T,vn,n;
    scanf("%d",&T);
    while(T--){
        memset(f,0,sizeof(f));
        scanf("%d%d",&vn,&n);//总金额 总类
        for(int i=1;i<=n;i++)//价格 重量 袋数
            scanf("%d%d%d",&v[i],&w[i],&num[i]);
        for(int i=1;i<=n;i++){
            for(int j=0;j<num[i];j++){
                for(int k=vn;k>=v[i];k--)
                    f[k]=max(f[k],f[k-v[i]]+w[i]);
            }
        }
        printf("%d\n",f[vn]);
    }
    return 0;
}
时间: 2024-10-02 10:36:01

HDU 2191的相关文章

hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 14086    Accepted Submission(s): 5921 Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,

[ACM] hdu 2191 珍惜如今,感恩生活 (多重背包)

Problem Description 急!灾区的食物依旧短缺! 为了拯救灾区同胞的生命,心系灾区同胞的你准备自己採购一些粮食支援灾区,如今如果你一共同拥有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,而且仅仅能整袋购买. 请问:你用有限的资金最多能採购多少公斤粮食呢? 后记: 人生是一个充满了变数的生命过程,天灾.人祸.病痛是我们生命历程中不可预知的威胁. 月有阴晴圆缺,人有旦夕祸福,未来对于我们而言是一个未知数.那么,我们要做的就应该是珍惜如今,感恩生活-- 感谢父母,他们给

hdu 2191(多重背包)

悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14758    Accepted Submission(s): 6229 Problem Description 急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市

HDU #2191 买米问题 多重背包及其优化

Description 问题描述以及测试样例在这:HDU#2191 思路 这道题其实就是多重背包问题,即有 N 种物品和一个容量为 V 的背包,第 i 种物品最多有 n[i] 件可用,每件费用是 c[i] ,价值是 w[i] ,求哪些物品装入背包可以使得这些物品的费用总和不超过背包容量,且价值总和最大.在这道题中,背包容量是经费,费用是每种米的价格,价值是每种米的重量,求用给定的经费买米,使得买到米的总重量最大,注意经费是可以剩余的. 其实多重背包问题和完全背包问题非常相似,只不过前者的物品是有

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

http://acm.hdu.edu.cn/showproblem.php?pid=2191 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的选拔 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17930    Accepted

hdu 2191 珍惜现在,感恩生活

链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2191 思路:多重背包模板题 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <math.h> 5 #include <algorithm> 6 using namespace std; 7 int money,type; 8 int pri

HDU 2191 HDU 2191 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (01背包入门)

1 /************************************* 2 3 01背包入门题 4 把每袋大米做01背包就可以了. 5 http://acm.hdu.edu.cn/showproblem.php?pid=2191 6 7 *************************************/ 8 9 #include<iostream> 10 #include<cstring> 11 #include<algorithm> 12 usin

HDU 2191 Robberies抢劫案(AC代码)01背包的变形

1 #include <iostream> 2 #define limit 110 3 using namespace std; 4 int n; 5 int money[limit]; //银行的钱 6 double safe[limit]; //被抓的概率 7 double dp[10000]; 8 double p,big; 9 void cal(int temp,int n)//所有银行的钱,n家银行 10 { 11 int i,j; 12 for(i=0;i<n;i++) 13

HDU 2191 多重背包

悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 22865    Accepted Submission(s): 9661 Problem Description 急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市