noip模拟 马云 Mr_H
题目描述:
因讨厌马云而彻底放弃网购,他的日常用品都要到商场去购买,而且必须付现金。但是现金购买,经常会遇到找零的问题,那么现在请你帮助他解决这样一个问题:现在 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相关推荐
- NOI.AC NOIP模拟赛 第六场 游记
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...
- 【noip模拟赛4】Matrix67的派对 暴力dfs
[noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26
背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...
- jyzy noip模拟赛5.22-2
不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...
- NOIP模拟赛csy2021/10/30
NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...
- NOIP模拟(10.22)T2 杆子的排列
杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...
- Noip 模拟练习5
Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...
- NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望
NOIP 模拟题 题目名称兔子被子蚊子 源程序文件名rabbit.cpp quilt.cpp mosquito.cpp 输入文件名rabbit.in quilt.in mosquito.in 输出文件 ...
最新文章
- jquery ajax多次请求接口解决方案
- 【学无止境】关于通过PHP链接FTP或SFTP的问题及解决--FTP篇
- Django:视图和URL配置
- Linux下arp用法
- MYSQL重置ROOT密码
- .NET6发布了Preview2,这点超越过去10年!
- JAVA入门级教学之(编写第一个HelloWorld程序)
- gradle 查看依赖类库版本_Android studio中查看依赖的第三方库的历史版本和最新版本...
- java利用htmlparser得到网页html内容
- Android 系统性能优化(55)---Android 性能优化之内存优化
- 职场学会这三招,谁都想跟你交朋友
- 自己实现简单Java缓存类
- 自媒体内容采集工具,采集多个自媒体平台内容
- php邮箱发送,PHP的邮箱发送
- 如何在Apache-Maven官网下载到自己想要的版本
- bmp180气压传感器工作原理_40张动图,揭示各种传感器工作原理
- HBase快速导入巨量数据—— Bulk Loading
- [Tableau] 饼图绘制
- 第一章:1-03、试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。...
- C++ | shared_ptr与weak_ptr
热门文章
- 论文笔记-DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM
- 厨房定时器c语言程序,基于51单片机的厨房定时器仿真+源代码
- ONVIF系列笔记-PTZ的控制
- 串口发数据到android数据错误,51单片机通过蓝牙串口模块发送JSON数据给安卓手机故障解决办法...
- R语言使用epiDisplay包的tableStack函数基于分组变量生成统计分析表(包含描述性统计分析、假设检验、不同数据使用不同的统计量和假设检验方法)、自定义指定Bartlett检验的p值水平
- Python 搜索、排序、复杂度分析
- python算法描述_数据结构(Python语言描述)- 排序算法
- JavaScript写一个连连看的游戏
- linux下如何把文件清空,详解在Linux中清空或删除大文件内容的5种方法
- 彻底删除之----windows install clean up