题目描述:

    因讨厌马云而彻底放弃网购,他的日常用品都要到商场去购买,而且必须付现金。但是现金购买,经常会遇到找零的问题,那么现在请你帮助他解决这样一个问题:现在 Mr_he 手上有 n 种不同面值的硬币,每种硬币有无限多个。为了方便购物,他希望带尽量少的硬币,但是要能组合出 1 到 m 之间的任意值。

输入:

    第一行为两个整数:m 和 n,他们的意义如题目描述。接下来的 n 行,每行一个整数,第 i+1 行的整数表示第 i 种硬币的面值。

输出:

    最少需要携带的硬币数量,如果无解则输出-1。

样例输入:

20 4
1
2
5
10

样例输出:

5

简析:

    首先判断有无解,如果最小面额硬币大于1则无解,因为搭配不出1,如果有一则有解,因为所有面额都可以由1堆积出来。接下来思考一个问题,假设当前硬币可以组合出1到5的任意面额,那么添加一枚面额为6的硬币就可以搭配出1到11的任意面额,于是我们依照这个思路,假设当前硬币面值的和为sum,每一次添加硬币时,从大到小搜索,将搜索到的第一枚面值小于等于sum+1的硬币加入,(sum+1是上限),并将计数器+1,更新sum值。

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int a[1100];
int main(){int n,m;scanf("%d%d",&m,&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);sort(a+1,a+n+1);  //注意排序if(a[1]!=1){printf("-1");return 0;}int sum=0,ans=0;while(1){if(sum>=m){printf("%d",ans);return 0;}for(int i=n;i>=1;i--)   //从大到小if(a[i]<=sum+1){   sum+=a[i];ans++;break;}       }
}

noip模拟 马云 Mr_H相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26

    背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...

  5. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  6. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  7. NOIP模拟(10.22)T2 杆子的排列

    杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...

  8. Noip 模拟练习5

    Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...

  9. NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望

    NOIP 模拟题 题目名称兔子被子蚊子 源程序文件名rabbit.cpp quilt.cpp mosquito.cpp 输入文件名rabbit.in quilt.in mosquito.in 输出文件 ...

最新文章

  1. jquery ajax多次请求接口解决方案
  2. 【学无止境】关于通过PHP链接FTP或SFTP的问题及解决--FTP篇
  3. Django:视图和URL配置
  4. Linux下arp用法
  5. MYSQL重置ROOT密码
  6. .NET6发布了Preview2,这点超越过去10年!
  7. JAVA入门级教学之(编写第一个HelloWorld程序)
  8. gradle 查看依赖类库版本_Android studio中查看依赖的第三方库的历史版本和最新版本...
  9. java利用htmlparser得到网页html内容
  10. Android 系统性能优化(55)---Android 性能优化之内存优化
  11. 职场学会这三招,谁都想跟你交朋友
  12. 自己实现简单Java缓存类
  13. 自媒体内容采集工具,采集多个自媒体平台内容
  14. php邮箱发送,PHP的邮箱发送
  15. 如何在Apache-Maven官网下载到自己想要的版本
  16. bmp180气压传感器工作原理_40张动图,揭示各种传感器工作原理
  17. HBase快速导入巨量数据—— Bulk Loading
  18. [Tableau] 饼图绘制
  19. 第一章:1-03、试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。...
  20. C++ | shared_ptr与weak_ptr

热门文章

  1. 论文笔记-DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM
  2. 厨房定时器c语言程序,基于51单片机的厨房定时器仿真+源代码
  3. ONVIF系列笔记-PTZ的控制
  4. 串口发数据到android数据错误,51单片机通过蓝牙串口模块发送JSON数据给安卓手机故障解决办法...
  5. R语言使用epiDisplay包的tableStack函数基于分组变量生成统计分析表(包含描述性统计分析、假设检验、不同数据使用不同的统计量和假设检验方法)、自定义指定Bartlett检验的p值水平
  6. Python 搜索、排序、复杂度分析
  7. python算法描述_数据结构(Python语言描述)- 排序算法
  8. JavaScript写一个连连看的游戏
  9. linux下如何把文件清空,详解在Linux中清空或删除大文件内容的5种方法
  10. 彻底删除之----windows install clean up