#include<iostream>
#include<cstdio>
#include<cstring>
//本来想用 memset 函数来着,后来除了岔子!除了赋值为 0,赋值为其它就不要用了!
using namespace std;
int sorts, coin[10];//sorts:硬币种类数,coin[]:硬币面值(从小到大)
int target;//目标总值
int ans[30];//ans[i] 表示找到的配成 i 时最少硬币数
int main() {for (int i = 0;i < 30;i++) ans[i] = 1000;//赋初值(视为无穷大,因为使用的数值较小) cin >> sorts >> target;ans[0] = 0;//关键的初始化!!! for (int i = 0;i < sorts;i++) cin >> coin[i];//规定硬币面值从小到大输入 for (int i = 1;i <= target;i++) {for (int j = 0;j < sorts;j++) {if (i >= coin[j] && ans[i - coin[j]] < 1000) {//不可以缺少了判断条件 ans[i] = min(ans[i - coin[j]] + 1, ans[i]);}}}if (ans[target] == 1000) cout << -1;else cout << ans[target];//for(int i=0;i<=target;i++) cout<<ans[i]<<' ';return 0;
}

测试:

(不多说了,继续研究动态规划思想去!!)

最值动态规划——最少硬币组合相关推荐

  1. 动态规划-最少硬币组合问题(Java)

    问题: 如果我们有面值为1元.3元和5元的硬币若干枚,如何用最少的硬币凑够11元? 思路 代码 package java_20201010; import java.util.Scanner; /** ...

  2. java动态规划凑硬币问题,详解动态规划最少硬币找零问题--JavaScript实现

    硬币找零问题是动态规划的一个经典问题,其中最少硬币找零是一个变种,本篇将参照上一篇01背包问题的解题思路,来详细讲解一下最少硬币找零问题.如果你需要查看上一篇,可以点击下面链接: 详解动态规划01背包 ...

  3. 硬币组合问题python_动态规划之硬币组合问题

    问题:如果我们有面值为1元.3元和5元的硬币若干枚,如何用最少的硬币凑够11元? 动态规划的本质是将原问题分解为同性质的若干相同子结构,在求解最优值的过程中将子结构的最优值记录到一个表中以避免有时会有 ...

  4. 动态规划之硬币组合问题

    问题:如果我们有面值为1元.3元和5元的硬币若干枚,如何用最少的硬币凑够11元? 动态规划的本质是将原问题分解为同性质的若干相同子结构,在求解最优值的过程中将子结构的最优值记录到一个表中以避免有时会有 ...

  5. 动态规划——最少硬币找零问题(python)

    1. 问题描述 2. 思路 刚开始是想利用贪心算法.假如要找的零钱总额为49元,先找10块的,可以找40块,再继续找5块的,可以找5块,再继续找2块的,可以找4块.找够49元的最少纸币数为4 + 1 ...

  6. python 最小硬币数_Python之动态规划(最少硬币数找零)

    完整代码: # 动态规划最少硬币数找零 def dpMakeChange(coinValueList, change, minCoins, coinsUsed): for cents in range ...

  7. 动态规划(三)——最少硬币和所有硬币问题

    硬币问题 一.最少硬币问题 二.打印最少硬币组合 三.所有硬币组合 3.1硬币数量不限制 3.2硬币数量限制 一.最少硬币问题 有n种硬币,面值为v1-vn,数量无限,选用硬币,使其和金额为s,要求求 ...

  8. Python数据结构20:动态规划:找零兑换问题的动态规划解法并显示使用的硬币组合

    在我们使用递归算法时,可能会出现规模庞大的重复计算,用一个中间表记录每个计算过的最优解法,就可以避免大量的重复计算.中间结果记录可以很好解决找零兑换问题.实际上,这种方法还不能称为动态规划,而是叫做& ...

  9. 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1

    /*** 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1.* 输入: coins = ...

最新文章

  1. MySQL事务的回滚
  2. 为Unity项目生成文档(一)
  3. 系统的本地策略不允许您采用交互式登录
  4. 基于Spring Security的认证授权_连接数据库认证_Spring Security OAuth2.0认证授权---springcloud工作笔记128
  5. mvc ajax helpers,ASP.NET MVC 实践系列4-Ajax应用
  6. (MYSQL) Unknown table 'a' in MULTI DELETE的解决办法
  7. 杭电 2016 计算机组成原理,杭电计算机组成原理多功能ALU设计实验
  8. MAC编译OpenJDK8:ld: library not found for -lstdc++(独家解决办法)
  9. JS实现网页截图的三种方案
  10. mac硬盘故障升级系统_硬件升级:如何安装新硬盘,第2页,故障排除
  11. 当小内存遇上大量数据,你该怎么解决这个问题?
  12. 输入邮箱判断邮箱是否合法
  13. java-Scaner和Console类对象
  14. Keras Tuner 超参数优化
  15. 终于搞定终于搞定linux下阅读pdg(转)
  16. 你见过灰犀牛吗?也许它比黑天鹅还可怕
  17. gh-ost大表DDL工具源码阅读
  18. 面试逻辑题和答案(二)
  19. Windows10电脑文件自动同步备份工具有哪些?
  20. win10笔记本玩游戏总是很卡怎么办

热门文章

  1. 从此之后,Creator 再无秘密
  2. kali 之Tor浏览器安装
  3. 灵活用工平台是如何解决企业与个人的税务问题的?
  4. pandas练习 IMDB-Movie
  5. 针对股票涨跌信息的一系列处理
  6. 普实AIO5:“互联网+ 移动应用”让管理触手可及
  7. java jfreechar_Jfreechart学习
  8. 跟杨春娟学SpringMVC笔记:Form表单之Spring验证框架
  9. JS-----选项卡切换
  10. 白话ETH2.0:你要了解的都在这里