HDU 2844 (多重背包)

原创 2015年11月17日 17:41:20

题意是给你n个价值和对应的数量,问1到m之内有多少价值可以构造出来。

很裸的多重背包。

#include <bits/stdc++.h>
using namespace std;
#define maxn 111111

bool dp[maxn];
int a[maxn];
int p[maxn], tot, n, m;

int main () {
    //freopen ("in", "r", stdin);
    while (scanf ("%d%d", &n, &m) == 2 && n+m) {
        for (int i = 1; i <= n; i++) {
            scanf ("%d", &a[i]);
        }
        tot = 0;
        for (int id = 1; id <= n; id++) {
            int cnt;
            scanf ("%d", &cnt);
            for (int i = 1; i <= cnt; i <<= 1) {
                p[tot++] = i*a[id];
                cnt -= i;
            }
            if (cnt > 0) {
                p[tot++] = cnt*a[id];
            }
        }
        memset (dp, 0, sizeof dp);
        dp[0] = 1;
        for (int i = 0; i < tot; i++) {
            for (int j = m-p[i]; j >= 0; j--) {
                dp[j+p[i]] = ((dp[j] == 1)|dp[j+p[i]]);
            }
        }
        int ans = 0;
        for (int i = 1; i <= m; i++) {
            if (dp[i]) {
                ans++;
            }
        }
        printf ("%d\n", ans);
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

hdu2844 Coins(多重背包+二进制优化)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2844 题目大意: 有n种价值不同的硬币,他们的数量有限但不相同。现在要求出硬币组合,可组合出多少种...
  • aaaaacmer
  • aaaaacmer
  • 2015年09月18日 14:10
  • 636

HDU 2844 Coins (多重背包计数 空间换时间)

HDU 2844 Coins (多重背包计数 空间换时间)
  • Tc_To_Top
  • Tc_To_Top
  • 2015年07月13日 23:05
  • 1074

HDU 2844 Coins 多重背包判断可行性

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2844题意:有很多种钱币,每种都有特定的价值和数量,求用这些钱币可以凑出多少个在1~m之间的数字思路定义dp...
  • discreeter
  • discreeter
  • 2016年11月29日 18:45
  • 213

HDU 2844 多重背包 二进制压缩

#include #include const int N = 100010; int dp[N];//将钱视为背包的容量 int val[104], num[104], n, V; //V...
  • vsooda
  • vsooda
  • 2012年08月28日 09:41
  • 739

HDU_多重背包系列

HDU 多重背包系列持续更新中……
  • jhgkjhg_ugtdk77
  • jhgkjhg_ugtdk77
  • 2016年07月23日 12:12
  • 799

hdu1059 Dividing(多重背包+二进制优化)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1059 题目大意: 有价值分别为1~6的弹珠,不同价值的弹珠有不同的数量。两个人要分成相同的价值,问...
  • aaaaacmer
  • aaaaacmer
  • 2015年09月18日 11:05
  • 591

【HDU 2844】Coins(多重背包)

Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hibix opened p...
  • Wyx_wx
  • Wyx_wx
  • 2017年07月18日 15:04
  • 94

HDU 2844 Coins (多重背包)

记得有好几题类似的,先mark 一下,然后以后补上,就是求最小的不能取到的,可以取的有几种这些之类的。 Coins Problem Description Whuacme...
  • xi__long
  • xi__long
  • 2015年04月17日 15:02
  • 238

多重背包 HDU 2844 Coins

多重背包可转化为01背包,首先将件数C二进制分解为多个件数的集合,这些件数可以组合成任意 小于等于C的数字,而且不会重复。 如7 7=111,可以分解为100,010,001,这三个数可以组...
  • qq_38313974
  • qq_38313974
  • 2017年08月03日 18:54
  • 49

HDU 2844 Coins (多重背包)

题目大意:有n种商品,个人拥有m元钱。下一行中前n/2为n种物品的价钱后n/2为对应的物品数量。问不超过m元钱中买商品的钱数有多少种不同的。 思路:就是多重背包,最后哈希统计一下数量就行。 ...
  • Grit_ICPC
  • Grit_ICPC
  • 2016年01月08日 10:09
  • 255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 2844 (多重背包)
举报原因:
原因补充:

(最多只允许输入30个字)