链接:

https://www.acwing.com/problem/content/283/

题意:

给定N种硬币,其中第 i 种硬币的面值为Ai,共有Ci个。

从中选出若干个硬币,把面值相加,若结果为S,则称“面值S能被拼成”。

求1~M之间能被拼成的面值有多少个。

思路:

考虑多重背包,复杂度较高,因为是判断能否组成所需的硬币,可以从前往后,另开数组记录第i种硬币的使用数目.

代码:

#include <bits/stdc++.h>
using namespace std; int a[110], c[110];
int Dp[100010], Cnt[100010];
int Is[100010];
int n, m; int main()
{
while (~scanf("%d%d", &n, &m) && (n || m))
{
memset(Is, 0, sizeof(Is));
for (int i = 1;i <= n;i++)
scanf("%d", &a[i]);
for (int i = 1;i <= n;i++)
scanf("%d", &c[i]);
Is[0] = 1;
for (int i = 1;i <= n;i++)
{
for (int j = 0;j <= m;j++)
Cnt[j] = 0;
for (int j = a[i];j <= m;j++)
{
if (!Is[j] && Is[j-a[i]] && Cnt[j-a[i]] < c[i])
Is[j] = 1, Cnt[j] = Cnt[j-a[i]]+1;
}
}
int ans = 0;
for (int i = 1;i <= m;i++)
if (Is[i])
ans++;
printf("%d\n", ans);
} return 0;
}

Acwing-281-硬币(背包)的更多相关文章

  1. 【bzoj1708】[USACO2007 Oct]Money奶牛的硬币 背包dp

    题目描述 在创立了她们自己的政权之后,奶牛们决定推广新的货币系统.在强烈的叛逆心理的驱使下,她们准备使用奇怪的面值.在传统的货币系统中,硬币的面值通常是1,5,10,20或25,50,以及100单位的 ...

  2. acwing 3 完全背包

    习题地址 https://www.acwing.com/problem/content/description/3/ 题目描述有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用. 第 i ...

  3. bzoj1708 [Usaco2007 Oct]Money奶牛的硬币 背包dp

    [Usaco2007 Oct]Money奶牛的硬币 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 852  Solved: 575[Submit][Sta ...

  4. acwing 7 混合背包

    习题地址  https://www.acwing.com/problem/content/description/7/ 题目描述有 N 种物品和一个容量是 V 的背包. 物品一共有三类: 第一类物品只 ...

  5. bzoj1708[Usaco2007 Oct]Money奶牛的硬币(背包方案数dp)

    1708: [Usaco2007 Oct]Money奶牛的硬币 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 763  Solved: 511[Submi ...

  6. acwing 算法面试、笔试题公开课整理记录

    week1 Google KickStart 2019 A轮 讲解视频地址AcWing 549. 训练   tag: 排序 遍历 在线练习地址AcWing 550. 包裹       在线练习地址Ac ...

  7. DP背包问题学习笔记及系列练习题

    01 背包: 01背包:在M件物品中取出若干件物品放到背包中,每件物品对应的体积v1,v2,v3,....对应的价值为w1,w2,w3,,,,,每件物品最多拿一件. 和很多DP题一样,对于每一个物品, ...

  8. 【BZOJ-1042】硬币购物 容斥原理 + 完全背包

    1042: [HAOI2008]硬币购物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1811  Solved: 1057[Submit][Stat ...

  9. BZOJ 1042 硬币购物(完全背包+DP)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1042 题意:给出四种面值的硬币c1,c2,c3,c4.n个询问.每次询问用d1.d2.d ...

  10. Bzoj 1042: [HAOI2008]硬币购物 容斥原理,动态规划,背包dp

    1042: [HAOI2008]硬币购物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1747  Solved: 1015[Submit][Stat ...

随机推荐

  1. 最大熵马尔科夫模型(MEMM)及其标签偏置问题

    定义: MEMM是这样的一个概率模型,即在给定的观察状态和前一状态的条件下,出现当前状态的概率. Ø  S表示状态的有限集合 Ø  O表示观察序列集合 Ø  Pr(s|s­­’,o):观察和状态转移概 ...

  2. AI 资源帖

    https://github.com/mnielsen/neural-networks-and-deep-learning openCV笔记 https://blog.csdn.net/qq_2689 ...

  3. 旗舰版win7系统中GraphEdit执行Loading a Graph From an External Process失败对策

    操作系统:旗舰版win7 DirectShow SDK: 9.0 IDE环境:VS2008 以下代码参考MSDN: HRESULT AddToRot(IUnknown *pUnkGraph, DWOR ...

  4. [python] a little deep learning case

    from numpy import exp, array, random, dot class NeuralNetwork(): def __init__(self): random.seed(1) ...

  5. [BZOJ2594] [WC2006]水管局长(Kruskal+LCT)

    [BZOJ2594] [WC2006]水管局长(Kruskal+LCT) 题面 SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可 ...

  6. c++学习笔记之类和对象(三、static静态成员变量和静态成员函数)

    一.static静态成员变量 对象的内存中包含了成员变量,不同的对象占用不同的内存,这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响.是有时候我们希望在多个对象之间共享数据,对象 a 改变 ...

  7. javaScript的Array方法

    仅个人总结 声明方法: var arr = new Array(); var arr = new Array(1,2,3,4,5); var arr = new array(size);//当为一个参 ...

  8. cookie,session,token的理解

    Get  POST 区别异同点 淘宝token的 理解   过程算法 防止伪造请求  伪造相对难 简单发展史  登录的操作: 哪些人往自己的购物车中放商品,  也就是说我必须把每个人区分开,这就是一个 ...

  9. Python_4day

    函数 函数可以用来定义可重复代码,组织和简化 一般来说一个函数在实际开发中为一个小功能 一个类为一个大功能 同样函数的长度不要超过一屏   Python中的所有函数实际上都是有返回值(return N ...

  10. spring boot JPA 数据库连接池释放

    当JPA获取数据库数据连接时,如果连接数超过最大连接数的配置,系统就会报错: Unable to acquire JDBC Connection 和: Caused by: java.sql.SQLT ...