洛谷 P3951 NOIP 2017 小凯的疑惑
洛谷 P3951 NOIP 2017 小凯的疑惑
题目描述
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。
输入格式
两个正整数 \(a\) 和 \(b\),它们之间用一个空格隔开,表示小凯中金币的面值。
输出格式
一个正整数 \(N\),表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
输入输出样例
输入 #1
3 7
输出 #1
11
说明/提示
【输入输出样例 1 说明】
小凯手中有面值为\(3\)和\(7\)的金币无数个,在不找零的前提下无法准确支付价值为\(2,4,5,8,11\) 的物品,其中最贵的物品价值为 \(11\),比\(11\) 贵的物品都能买到,比如:
\(12 = 3 \times 4 + 7 \times 0\)
\(13 = 3 \times 2 + 7 \times 1\)
\(14 = 3 \times 0 + 7 \times 2\)
\(15 = 3 \times 5 + 7 \times 0\)
【数据范围与约定】
对于 \(30\%\)的数据: \(1 \le a,b \le 50\)
对于 \(60\%\)的数据: \(1 \le a,b \le 10^4\)
对于\(100\%\)的数据:\(1 \le a,b \le 10^9\)
分析
我们不妨设 \(a<b\),答案为\(x\)
如果\(x\)可以被\(a\)和\(b\)表示出来的话,那么就有
\(x=ma+nb(m \geq 0,n \geq 0)\)
但是\(x\)不能表达成上面的式子,我们要使\(x\)最大,因为\(a<b\),所以令\(n=-1\)
而且\(ma\)不能被\(b\)整除,否则\(b\)又会多出一个因子
因此\(m_{max}=b-1\)
所以\(x=a(b-1)-b=ab-a-b\)
当\(a > b\)时推出的式子完全相同,因此最终的答案为
\(ab-a-b\)
代码
#include<cstdio>
int main(){
long long a,b;
scanf("%lld%lld",&a,&b);
printf("%lld\n",a*b-a-b);
return 0;
}
最新文章
- 你可能不知道的陷阱, IEnumerable接口
- Mac下搭建hexo
- jeesite部署到Tomcat后,无法访问,cannot be resolved in either web.xml or the jar files deployed with this application
- Linq使用Group By 1
- Android 学习之显式激活与隐式激活Activity
- 怎么判定一个mac地址是multicast还是unicast.
- 线程入门之实现Runnable接口和继承Thread类
- Unicode基本概念
- 编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish 和Dog,定义主类E,在其main方法中分别创建其对象并测试对象的特性。
- Unity3D移植Windows Universal App(Windows 8.1 及Windows Phone 8.1)版本遇到的坑
- URAL 1008 - Image Encoding(bfs坑爹题)
- 用C++写一个简单的订阅者
- http://www.swoole.com/
- 一些css3的特效 javascript的window对象 定时器 延时器等ing...
- java实现——030最小的k个数
- 九度OJ:1002-Grading
- SDL 在指定窗口中绘图
- JAVA之列表
- css--nth-child的注意点
- Vue中的双向数据绑定简单介绍
热门文章
- PHP sleep() 函数
- Workerman学习笔记(一)初步认识
- Dropzone.js文件拖拽上传提示Dropzone already attached 解决
- 手敲代码太繁琐?“拖拉拽”式Python编程惊艳到我了
- Python使用socketServer包搭建简易服务器过程详解
- EF框架 与 Dapper框架 调用分页存储过程
- Grazing on the Run 题解
- Java—时间的原点 计算时间所使用的 Date类/DateFormat类/Calendar类
- Visual Studio Code中设置sftp同步代码到服务器
- 2020-07-28:已知sqrt (2)约等于 1.414,要求不用数学库,求sqrt (2)精确到小数点后 10 位。