洛谷 P3951 小凯的疑惑(赛瓦维斯特定理)

题目 :P3951 小凯的疑惑 :https://www.luogu.org/problemnew/show/P3951


题目描述

小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。

输入输出格式

输入格式:

两个正整数 aaa 和 bbb,它们之间用一个空格隔开,表示小凯中金币的面值。

输出格式:

一个正整数 NNN,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

输入输出样例

输入样例#1:
3 7
输出样例#1:
11

说明

【输入输出样例 1 说明】

小凯手中有面值为333和777的金币无数个,在不找零的前提下无法准确支付价值为1,2,4,5,8,111, 2,4,5,8,111,2,4,5,8,11 的物品,其中最贵的物品价值为 111111,比11 1111 贵的物品都能买到,比如:

12=3×4+7×012 = 3 \times 4 + 7 \times 012=3×4+7×0

13=3×2+7×113 = 3 \times 2 + 7 \times 113=3×2+7×1

14=3×0+7×214 = 3 \times 0 + 7 \times 214=3×0+7×2

15=3×5+7×015 = 3 \times 5 + 7 \times 0 15=3×5+7×0

【数据范围与约定】

对于 30%30\%30%的数据: 1≤a,b≤501 \le a,b \le 50 1a,b50。

对于 60%60\%60%的数据: 1≤a,b≤1041 \le a,b \le 10^4 1a,b104。

对于100% 100\%100%的数据:1≤a,b≤1091 \le a,b \le 10^9 1a,b109。


相关博客:https://www.cnblogs.com/xxzh/p/9178564.html 

     https://www.cnblogs.com/jefflyy/p/7819858.html

这道题是一道有关数论的题。

针对于这种类型的题,我们总结有一般规律:

  !!遇到数学问题就打表找规律!!

对于该题我们发现C=ab-a-b。

 

在这里,我们已知 :

  赛瓦维斯特定理 :已知 a,b为大于1的正整数,gcd(a,b)=1,则使不定方程 ax+by=C无负数解的最大整数C=ab-a-b。

 

所以,我们可以轻松得出 :

 1 //
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cctype>
 5 #include <cstring>
 6 #include <cmath>
 7 #include <algorithm>
 8 using namespace std;
 9 typedef unsigned long long ll;
10 #define ri register ll
11  
12 ll a,b;
13  
14 signed main()
15 {
16     ios::sync_with_stdio(0),cin.tie(0);
17     cin>>a>>b;
18     cout<<a*b-a-b<<'\n';
19     return 0;
20 }
21 //

 

posted @ 2019-06-28 00:50  敲可耐的螺旋藻  阅读(344)  评论(1编辑  收藏  举报