[数学]小凯的疑惑
2018-01-11 17:02
375 查看
题目描述
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。
输入格式:
输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手 中金币的面值。
输出格式:
输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
数据范围:
1≤a,b≤10^9
分析
牛逼我不愧是公式小王子啊
我没学过奥数,也没学过什么EXgcd,就在纸上瞎推居然推出来了!
然后去看了看,那个公式是这么证明的:
首先我们发现硬币面额调换一下结果还是一样的,所以假设a < b了
现在我们假设可以被完全支付的值为x
那么我们得出:
x=m*a+n*b[1≤m≤b-1]
然后我们就发现,n≥0时,x就是可以支付的了。
那么n<0呢?n<0就无法支付了,但是我们要求最大值,所以|n|要尽可能小,于是n=-1。
然后我们要求最大值嘛,那么m肯定要尽可能大,所以m为最大值b-1
现在式子变成描述不能被准确支付的了:
x=(b-1)*a-b
计算:
x=a*b-a-b
当当~最终公式!
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。
输入格式:
输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手 中金币的面值。
输出格式:
输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
数据范围:
1≤a,b≤10^9
分析
牛逼我不愧是公式小王子啊
我没学过奥数,也没学过什么EXgcd,就在纸上瞎推居然推出来了!
然后去看了看,那个公式是这么证明的:
首先我们发现硬币面额调换一下结果还是一样的,所以假设a < b了
现在我们假设可以被完全支付的值为x
那么我们得出:
x=m*a+n*b[1≤m≤b-1]
然后我们就发现,n≥0时,x就是可以支付的了。
那么n<0呢?n<0就无法支付了,但是我们要求最大值,所以|n|要尽可能小,于是n=-1。
然后我们要求最大值嘛,那么m肯定要尽可能大,所以m为最大值b-1
现在式子变成描述不能被准确支付的了:
x=(b-1)*a-b
计算:
x=a*b-a-b
当当~最终公式!
#include <iostream> #include <cstdio> using namespace std; long long a,b; int main() { scanf("%lld%lld",&a,&b); printf("%lld",a*b-a-b); }
相关文章推荐
- NOIP 2017 Day1 题1:小凯的疑惑 数学问题
- NOIP 2017 小凯的疑惑 (数学)
- 洛谷 P3951 小凯的疑惑
- JZOJsenior5473.【NOIP2017提高组】day1T1小凯的疑惑
- [NOIp2017 Day1 T1] 小凯的疑惑math (数论)
- NOIP2017 D1T1 小凯的疑惑
- 2017noip提高组复赛day1小凯的疑惑题解
- NOIp2017,Day1,T1 小凯的疑惑
- [置顶] 【NOIp 2017】小凯的疑惑(置顶)
- NOIP 提高组 day1 T1 小凯的疑惑
- NOIP2017 D1T1小凯的疑惑
- NOIP2017 小凯的疑惑
- [NOIp2017提高组]小凯的疑惑
- JZOJ 5473. 【NOIP2017提高组正式赛】小凯的疑惑
- 【Noip2017】D1T1小凯的疑惑
- NOIP2017Day1T1-小凯的疑惑
- [NOIP2017]小凯的疑惑
- NOIP提高组第一题——小凯的疑惑
- NOIP2017小凯的疑惑(提高D1T1)
- 从集合大小的定义到数学结构-解决了多年的疑惑