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


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

相关文章推荐

HDU 2844 Coins 多重背包

Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...

[ACM] hdu 2844 Coins (多重背包)

Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su...

hdu 2844 Coins 多重背包模板题 ,二进制优化。据说是楼教主的男人八题之一

Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hibix opened p...

hdu 2844 多重背包

如题:http://acm.hdu.edu.cn/showproblem.php?pid=2844      Problem Description Whuacmers use coins....

HDU 1059 物品价值平分问题,母函数或者多重背包 与 2844类似

#include #include #define Size 60005 #define Max(a,b) a>b?a:b int sum; int dp[Size]; /...
  • vsooda
  • vsooda
  • 2012年09月01日 18:27
  • 539

HDU 2844 Coins(多重背包)

以前做题目光仅仅局限于 0 1 背包 和 完全背包了。 出来一个  个数确定的背包就不会le...

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
  • 715

HDU 2844 Coins (多重背包)

Description Whuacmers use coins.They have coins of value A1,A2,A3…An Silverland dollar. One day Hib...

hdu 2844 coins DP多重背包

传送门:hdu 2844 coins题目大意给定商品种类n和背包容量m以及对应的价值/容量和数量,求组合成不大于背包容量m有多少种可能。解题思路这是一个多重背包的题目,价值等于重量。我们根据每种硬币的...

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

HDU 2844 Coins (多重背包计数 空间换时间)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 2844 (多重背包)
举报原因:
原因补充:

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