小凯的疑惑

liudagou / 2023-07-29 / 原文

题目

小凯的疑惑

题面

[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;
}