【问题描述】这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了 6 种钱币面值为 2、5、10、20、50、100,用来凑 15 元,可以用 5 个 2 元、1个 5 元,或者 3 个 5 元,或者 1 个 5 元、1个 10 元,等等。显然,最少需要 2 个钱币才能凑成 15 元。
你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。

【输入形式】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值 M(1 <= M<= 2000,整数),接着的一行中,第一个整数 K(1 <= K <= 10)表示币种个数,随后是 K个互不相同的钱币面值 Ki(1 <= Ki <= 1000)。输入 M=0 时结束。

【输出形式】每个测试用例输出一行,即凑成钱数值 M 最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。

【样例输入】

15
6 2 5 10 20 50 100
1
1 2
0

【样例输出】

2
Impossible

#include<iostream>
using namespace std;
int main()
{int n,m;while (cin>>m&&m){cin>>n;int *t=new int[n+1];               int *coin=new int[n+1];    for(int i=1;i<n+1;i++){cin>>t[i];coin[i]=(m/t[i]);}int d[2002]={0};for (int i=1;i<=m;i++) d[i]=99999;for(int i=1;i<=n;i++)for(int j=1;j<=coin[i];j++)for(int k=m;k>=t[i];k--){d[k]=min(d[k-t[i]]+1,d[k]);}if (d[m]==99999) cout<<"Impossible"<<endl;else cout<<d[m]<<endl;}
}

湖南大学1夏训练四8.最小钱币数相关推荐

  1. 湖南大学21夏训练四12.疫情期间

    [问题描述] 正值新冠疫情期间,阿迪没法返回学校学习,他希望通过参加一些比赛来提高一下编程技能,同时做做运动.他收集了接下来的 n 天里每一天的信息,包括健身房是否开放,或者互联网上是否有程序设计竞赛 ...

  2. 湖南大学21夏训练四2.最简单的计算机

    [问题描述] 一个名叫是 PigHeadThree 的研究组织设计了一台实验用的计算机,命名为 PpMm.PpMm只能执行简单的六种命令 A,B,C,D,E,F:只有二个内存 M1,M2:三个寄存器 ...

  3. 湖南大学21夏训练四7.斯诺克台球

    [问题描述] 斯诺克台球是一项古老而又时尚的运动,使用长方形球桌,台面四角以及两长边中心位置各有一个球袋,使用的球分为1个白球,15个红球和6个彩球共22个球. 其中母球(白球)1只,目标球21只.目 ...

  4. 湖南大学21夏训练四18.身份证校验

    [问题描述] 我国国标[GB 11643-1999]中规定:公民身份号码是18位特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字 ...

  5. 湖南大学21夏训练四3.相同生日

    [问题描述] 在一个有n个人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日,试找出所有生日相同的学生. [输入形式] 第一行为整数n,表示有n个学生,n<=200.此 ...

  6. 湖南大学21夏训练四16.逆序数

    问题描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.也就是说,对于n个不同的元素,先规定各元素之间有 ...

  7. 湖南大学21夏训练四9.相等的多项式

    问题描述 小明现在在学习多项式的展开:就是把一个形如 (x+a1) (x+a2) - (x+an) 展开成如下形式: xn + b1xn-1 + b2xn-2 + - + bn-1x + bn 比如 ...

  8. 湖南大学21夏训练四4.日历问题

    [问题描述] 在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年.例如:1700, 1800, 1900 和 2100 不是闰年,而 ...

  9. 湖南大学21夏训练四20.恺撒Caesar密码

    [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并 ...

最新文章

  1. swift 4.0 创建tableview 自定义cell
  2. JS实现——俄罗斯方块
  3. websocket服务器响应头,从服务器发送响应握手后,websocket.onopen不会触发
  4. JAVA面试题(1~95)《上》
  5. 【2016年第1期】基于大数据的玉米田四代棉铃虫发生量的预测模型
  6. Saltstack远程执行命令(3)
  7. spring boot / cloud (九) 使用rabbitmq消息中间件
  8. 数据挖掘 应用案例集
  9. 热血江湖服务器节点位置,热血江湖服务器合并相关说明
  10. javascript之函数的定义传参
  11. 我的世界Java版最诡异的种子_我的世界:比666还诡异的故障种子,无限复制结构?官方:还是特性...
  12. 自然摄影指南——第一章:曝光:使用相机的测光表
  13. Excel使用---excel2016___一般操作(搬,侵删)
  14. React中文文档之Components and Props
  15. 状压搜索 Circling Round Treasures:CodeForces - 375C
  16. cron表达式实现40分钟执行一次的解决方案
  17. 在Unity环境中使用强化学习训练Donkey Car(转译)
  18. python将json转csv代码示例
  19. EtherCAT---帧格式详解
  20. C++ 背包问题——01背包

热门文章

  1. 肥胖类型及减肥方法 中医减肥的方法
  2. 分享6个音乐音效素材库,你的BGM有着落了
  3. 小米4 线刷兼救砖_解账户锁_纯净刷机包_教程
  4. 《敏捷宣言》及其背后的12准则
  5. AI-Institute (AI研究所)_专注于国内外AI工具资讯首发
  6. es6 三点运算符_基于es6三点运算符的使用方法(实例讲解)
  7. 模块化链传动的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  8. SAM和BAM格式详解
  9. 求图中阴影部分的面积,还是求大家心理阴影的面积?
  10. CMOS 图像传感器简介