CF1934B Yet Another Coin Problem 题解
CF1934B Yet Another Coin Problem 题解
题意
目前有 \(5\) 种硬币,面值分别为 \(1,3,6,10,15\)。给你一个数字 \(n\),求出可以凑出 \(n\) 的最少的硬币的数量。
思路
这道题,大多数的人大概会想到动态规划的方法。
但是,我们应该有敢于创新的精神。于是我就想到了一个简单的数学方法。
首先我们先不讨论面值等于 \(15\) 元的硬币。
考虑硬币的面值为 \(1\) 元、\(3\) 元、\(6\) 元、\(10\) 元、\(15\) 元的情况。
1:面值为 \(1\) 元的硬币的数量范围小于 \(3\)。
当使用大于等于 \(3\) 个 \(1\) 元硬币。
则可以用面值为 \(3\) 的硬币代替。
2:面值为 \(3\) 元的硬币的数量范围小于 \(2\)。
当使用大于等于 \(2\) 个 \(3\) 元硬币。
则可以用面值为 \(6\) 的硬币代替。
3:面值为 \(6\) 元的硬币的数量范围小于 \(4\)。
当使用大于等于 \(4\) 个 \(6\) 元硬币。
则可以用 \(2\) 个面值为 \(10\) 加 \(1\) 个面值为 \(3\) 加 \(1\) 个面值为 \(1\) 的硬币代替。
4:面值为 \(10\) 元的硬币的数量范围小于 \(3\)。
当使用大于等于 \(3\) 个 \(10\) 元硬币。
则可以用 \(2\) 个面值为 \(15\) 的硬币代替。
5:面值为 \(15\) 的硬币。
剩下的数目都有面值为 \(15\) 的硬币承担就好了。
时间复杂度
因为前面的数值都很少,所以时间复杂度也十分小。
代码
#include <bits/stdc++.h>
using namespace std;
int n,t,ans;
int main() {
cin>>t;
while(t--){
cin>>n;
ans=1000000000;
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
for(int k=0;k<5;k++)
for(int m=0;m<3;m++){
int y=i*1+j*3+k*6+m*10;
if(y>n)continue;
if((n-y)%15==0){
ans=min(ans,i+j+k+m+(n-y)/15);
}
}
cout<<ans<<endl;
}
}
CF1934B Yet Another Coin Problem 题解的更多相关文章
- POJ2826:An Easy Problem?!——题解(配特殊情况图)
http://poj.org/problem?id=2826 题目大意:给两条线,让它接竖直下的雨,问其能装多少横截面积的雨. ———————————————————————————— 水题,看题目即 ...
- HDU 1016 Prime Ring Problem 题解
Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ... ...
- HDU 4143 A Simple Problem 题解
题目 For a given positive integer n, please find the saallest positive integer x that we can find an i ...
- UVA101 The Blocks Problem 题解
题目链接:https://www.luogu.org/problemnew/show/UVA101 这题码量稍有点大... 分析: 这道题模拟即可.因为考虑到所有的操作vector可最快捷的实现,所以 ...
- [CF-GYM]Abu Tahun Mod problem题解
前言 这道题比较简单,但我还是想了好一会 题意简述 Abu Tahun很喜欢回文. 一个数组若是回文的,那么它从前往后读和从后往前读都是一样的,比如数组\(\left\{1\right\},\left ...
- [NOIP模拟测试9]题(Problem) 题解 (组合数全家桶+dp)
达哥送分给我我都不要,感觉自己挺牛批. $type=0:$ 跟visit那题类似,枚举横向移动的步数直接推公式: $ans=\sum C_n^i \times C_i^{\frac{i}{2}} \t ...
- ZOJ 4082 Little Sub and his Geometry Problem题解
题意 f(u,v):x小于等于u且y小于等于v的点才对f有贡献,每个这样的点贡献(u-x)+() 思路 =f(u_2,v_2)" class="mathcode" src ...
- CF1324B Yet Another Palindrome Problem 题解
原题链接 CF 127个测试点,好评 简要题意: 多组数据,问数组中是否有长度 \(\geq 3\) 的回文子序列. 我们需要找到本质. 题目不让我们求这个长度,只让我们判断,这是为什么呢? 如果答案 ...
- CF1324A Yet Another Tetris Problem 题解
原题链接 简要题意: 再简要一波: 每次可以把一个数增加 \(2\),问最后能不能让所有数相等.(也就是抵消掉) 什么?题意变成这样子还做个啥? 你会发现,必须所有数的奇偶性都相同,才可以:反之就不可 ...
- CF749A Bachgold Problem 题解
Content 给定一个数 \(n\),求它最多能够拆分成多少个质数,并输出拆分成的每一个质数. 数据范围:\(2\leqslant n\leqslant 10^5\). Solution 我们考虑尽 ...
随机推荐
- 解决idea 控制台输出乱码问题:
解决idea 控制台输出乱码问题[IntelliJ IDEA 2022.1.3 (Ultimate Edition)]: 将两个地方文件编码设置成GBK 参考文档:https://blog.c ...
- 为什么下载程序的时候会提示win-amd64.exe
- 基于 Go 的 Web 框架调研
基于 Go 的 Web 框架调研 概述 调研总体目标 找出适合企业应用后台研发的 Go Web 框架 调研考察方向 项目完善程度: 功能完善: 路由, 模板, 插件/扩展, ORM, 命令行工具, 日 ...
- Vue——模板语法
Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层组件实例的数据.所有 Vue.js 的模板都是合法的 HTML,所以能被遵循规范的浏览器和 HTML 解析器解析 ...
- Android OpenMAX - 开篇
Android Media是一块非常庞大的内容,上到APP的书写,中到播放器的实现.封装格式的了解,下到OMX IL层的实现.Decoder的封装,每一块都需要我们下很大的功夫学习.除此之外,我们还要 ...
- 使用nvm安装以及管理多版本node教程
安装nvm.node.npm 下载nvm安装包,推荐使用1.1.7,我个人使用1.1.8会有中文乱码的报错 点击exe文件,注意修改nvm的安装根目录以及node的安装根目录,后者是以后管理多版本no ...
- ncnn的blob_vkallocator、workspace_vkallocator、staging_vkallocator区别
ncnn::Extractor中有三个成员函数: void set_blob_vkallocator(VkAllocator* allocator); void set_workspace_vkall ...
- minos 2.3 中断虚拟化——GICv2 管理
首发公号:Rand_cs 硬件肯定需要软件配合,这一节就来实战 GICv2 首先准备好 GICv2 手册:https://developer.arm.com/documentation/ihi0048 ...
- invalid comparison: java.util.ArrayList and java.lang.String 异常分析及解决方法
nvalid comparison: java.util.ArrayList and java.lang.String 异常解决方法异常原因首先我们可以确定是在mybatis的xml中的 list 操 ...
- 比较 SpringSecurity 和 Shiro
相比 Spring Security, Shiro 在保持强大功能的同时,使用简单性和灵活性. SpringSecurity: 即使是一个一个简单的请求, 最少得经过它的 8 个Filter.Spri ...