题目
小凯的疑惑
题面
[NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目
题目背景
NOIP2017 提高组 D1T1
题目描述
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。
现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?
注意:输入数据保证存在 小凯无法准确支付的商品。
输入格式
两个正整数 \(a\) 和 \(b\),它们之间用一个空格隔开,表示小凯中金币的面值。
输出格式
一个正整数 \(N\),表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
样例 #1
样例输入 #1
3 7
样例输出 #1
11
提示
【输入输出样例 1 说明】
小凯手中有面值为 \(3\) 和 \(7\) 的金币无数个,在不找零的前提下无法准确支付价值为 \(1,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 $。
题意
给你两个互质的数,询问不可以用这连个数累加表示的最大的数字
题解
这道题木只需要用瞪眼法就可以看出是一道数论的题目,再根据中学的盲猜发就可以看出通项公式:\(ans=a \times b-a-b\)
接着再加以证明就好了
证明:
存在性:
根据乘法的分配律得出:\(a(b-1)=ab-a\)
因为\(a,b\)互质,\(b\),\(b-1\)互质,所以\(b\)不能表示为\(ab-a\)
所以就不能表示出\(ab-a-b\)
同理,\(a\)可以表示出\(a(b-1)\),无法表示出ab-a-b
最大性:
因为\(a,b\)是整数,且\(gcd(a,b)=d\)
那么对于任意的整数\(x\),\(y\),\(ax+by\)都一定是d的倍数
并且一定存在整数\(x,y\),使\(ax+by=d\)成立。
不妨设\(b>x\),等价于\(b≥x+1\)
即证明:\(by=n-ax>ab-a-b-ax=ab-a(x+1)-b\)
因为\(b≥1+x\),所以\(ab-a(x-1)-b≥-b\)
所以\(n-ax>-b\),所以\(by>-b\),所以\(y>=0\)。而恰好,\(y>=0\)。
得证:
\(ans=a \times b-a-b\)
AC code
#include <bits/stdc++.h>
using namespace std;
long long a, b;
int main()
{
cin >> a >> b;
cout << a * b - a - b << endl;
return 0;
}
标签:小凯,疑惑,ab,times,金币,le,ax
From: https://www.cnblogs.com/liudagou/p/17588745.html