Time Limit: 1000 ms Memory Limit: 65536 KiB
Submit Statistic
Problem Description
设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。
对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。
对于给定的1≤n≤10,硬币面值数组T和可以使用的各种面值的硬币个数数组Coins,以及钱数m,0≤m≤20001,计算找钱m的最少硬币数。
Input
输入数据第一行中只有1个整数给出n的值,第2行起每行2个数,分别是T[j]和Coins[j]。最后1行是要找的钱数m。
Output
输出数据只有一个整数,表示计算出的最少硬币数。问题无解时输出-1。
Sample Input
3
1 3
2 3
5 3
18
Sample Output
5
Hint

Source


//硬币种类有限制,硬币数目有限制
//多重背包#include <iostream>
//#include <cstdio>
using namespace std;
const int maxvalue = 20001;
const int coinnum = 15;
int mymin(int a, int b)
{return a < b ? a : b;
}int main()
{int n;cin >> n;int coin[coinnum];int coincount[coinnum];for(int i = 0; i < n; i++){cin >> coin[i];cin >> coincount[i];}int m;cin >> m;//钱数为dp[i]是的硬币数目int *dp = new int[maxvalue]();//重点错误//for(int i = 0; i <= m; i++)是错的for(int i = 1; i <= m;i++)dp[i] = maxvalue;int i, j, k;for(i = 0; i < n; i++)//硬币面值的种数{for(j = 1; j <= coincount[i]; j++)//硬币的面值的个数{for(k = m; k >= coin[i]; k--){//动态迁移方程为dp[k] = mymin(dp[k - coin[i]] + 1, dp[k]);}}}if(dp[m] == maxvalue)cout << -1 << endl;else cout << dp[m] << endl;return 0;
}

最少硬币问题(多重背包)相关推荐

  1. 最少硬币问题----多重背包

    问题描述: 设有n 种不同面值的硬币,各硬币的面值存于数组T[1:n ]中.现要用这些面值的硬币来找钱.可以使用的各种面值的硬币个数存于数组Coins[1:n ]中.对任意钱数0≤m≤20001,设计 ...

  2. The Fewest Coins(多重背包+完全背包)

    The Fewest Coins(多重背包+完全背包) Farmer John has gone to town to buy some farm supplies. Being a very eff ...

  3. 洛谷P2851 [USACO06DEC]最少的硬币The Fewest Coins(完全背包+多重背包)

    题目描述 Farmer John has gone to town to buy some farm supplies. Being a very efficient man, he always p ...

  4. 最少硬币找零系列问题(01背包,完全背包,多重背包动态规划)

    背包问题思路解决最小硬币找零系列问题. 一.01硬币找零问题(01背包) 给定不同面额的硬币 coins 和总金额 m.每个硬币最多选择一次.计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬 ...

  5. POJ 3260 The Fewest Coins 最少硬币个数(完全背包+多重背包,混合型)

    题意:FJ身上有各种硬币,但是要买m元的东西,想用最少的硬币个数去买,且找回的硬币数量也是最少(老板会按照最少的量自动找钱),即掏出的硬币和收到的硬币个数最少. 思路:老板会自动找钱,且按最少的找,硬 ...

  6. 最小硬币问题(多重背包and完全背包)

    B-最小硬币问题 1.多重背包版 描述: 设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中.现要用这些面值的硬币来找钱.可以使用的各种面值的硬币个数存于数组Coins[1:n]中. 对任意钱 ...

  7. 最少硬币问题(多重背包问题)

    最少硬币问题 问题描述:设有n种不同面值的硬币,各硬币的面值存在于数组T[1:n]中.现要用这些面值的硬币来找钱.可以使用的各种面值的硬币个数存于数组Coins[1:n]中.对任意钱数0£m£2000 ...

  8. 【dp - 多重背包】575: Coin Changing

    题目: http://acm.swust.edu.cn/#/problem/575/490 题目描述 设有n 种不同面值的硬币,各硬币的面值存于数组T[1:n]中.现要用这些面值的硬币来找钱.可以使用 ...

  9. 『多重背包的可达性问题』Coins划分大理石

    问题描述:coins Silverland的人们使用硬币.他们有价值A1,A2,A3的硬币-一个Silverland美元.有一天Tony打开他的钱箱,发现有一些硬币.他决定在附近的商店买一块非常漂亮的 ...

最新文章

  1. 计算机网络技术与应用教程期末考试,2011大学计算机网络技术与应用教程客观题期末复习(含判断题,属于公共课程,使用)...
  2. MAC 安装 pygraphviz 找不到头文件
  3. 信息学奥赛一本通(2066:【例2.3】买图书)
  4. gin源码解析(1) - gin 与 net/http 的关系
  5. Mybatis-Plus 使用自定义注入器后,查询条件中不再添加逻辑删除字段限定条件
  6. android之app自动启动
  7. 多伦多大学Self-Driving Cars自动驾驶专项课程(十八)Proportional-Integral-Derivative(PID) Control
  8. 关于ubantu安装cmake
  9. 记一次失败的小米前端面试经历
  10. vue:不同环境配置不同打包命令
  11. 明日之后服务器维护到几点,明日之后:凌晨三点停机维护,优化排队体验,百万阴兵要撤退了?...
  12. 有服务器还需要网站空间吗,有服务器还需要空间吗
  13. 从 OKR 工作法到 OKRs-E,落地OKR不能错过的转变
  14. 轻量级的肝脏与肝肿瘤 2.5D 分割网络阅读笔记
  15. windows下用mobaxterm代替mtputty
  16. ubuntu设置MySQL密码
  17. 天正当前比例怎么设置_天正模型空间怎么设置(天正7图纸空间中如何改变当前比例)...
  18. 如何使用jquery修改css中带有!important的样式属性
  19. 交换机的工作原理,以太网及华为交换机的命令指令
  20. Web前端设计开发规范

热门文章

  1. 能让你笑出八块腹肌的内涵手游|Cocos强势围观
  2. 【Auto.js】自动化脚本
  3. 【转载】想写代码千万行,学会「注释」最重要 | 亲子课堂 第 2 课
  4. c语言编译undeclared,C语言中,为什么这样的代码编译时出错a undeclared(first use in this function),...
  5. 5分钟民兴教你看懂征信报告内容,用卡的朋友注意了!
  6. DIA-48216 错误
  7. JAVA计算机毕业设计城市交通海量数据管理系统Mybatis+系统+数据库+调试部署
  8. css基础伪类选择器与选择器权重以及盒子模型的用法演示
  9. Python 零基础入门数据分析实战之小费数据集应用
  10. Holistic Multi-modal Memory Network for Movie Question Answering心得体会