洛谷 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;
}

最新文章

  1. 你可能不知道的陷阱, IEnumerable接口
  2. Mac下搭建hexo
  3. jeesite部署到Tomcat后,无法访问,cannot be resolved in either web.xml or the jar files deployed with this application
  4. Linq使用Group By 1
  5. Android 学习之显式激活与隐式激活Activity
  6. 怎么判定一个mac地址是multicast还是unicast.
  7. 线程入门之实现Runnable接口和继承Thread类
  8. Unicode基本概念
  9. 编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish 和Dog,定义主类E,在其main方法中分别创建其对象并测试对象的特性。
  10. Unity3D移植Windows Universal App(Windows 8.1 及Windows Phone 8.1)版本遇到的坑
  11. URAL 1008 - Image Encoding(bfs坑爹题)
  12. 用C++写一个简单的订阅者
  13. http://www.swoole.com/
  14. 一些css3的特效 javascript的window对象 定时器 延时器等ing...
  15. java实现——030最小的k个数
  16. 九度OJ:1002-Grading
  17. SDL 在指定窗口中绘图
  18. JAVA之列表
  19. css--nth-child的注意点
  20. Vue中的双向数据绑定简单介绍

热门文章

  1. PHP sleep() 函数
  2. Workerman学习笔记(一)初步认识
  3. Dropzone.js文件拖拽上传提示Dropzone already attached 解决
  4. 手敲代码太繁琐?“拖拉拽”式Python编程惊艳到我了
  5. Python使用socketServer包搭建简易服务器过程详解
  6. EF框架 与 Dapper框架 调用分页存储过程
  7. Grazing on the Run 题解
  8. Java—时间的原点 计算时间所使用的 Date类/DateFormat类/Calendar类
  9. Visual Studio Code中设置sftp同步代码到服务器
  10. 2020-07-28:已知sqrt (2)约等于 1.414,要求不用数学库,求sqrt (2)精确到小数点后 10 位。