[NOIp2017 Day1 T1] 小凱的疑惑math (數論)

題目

描述

小凱手中有兩種面值的金幣,兩種面值均爲正整數且彼此互素。每種金幣小凱都有 無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。現在小凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?注意:輸入數據保證存在小凱無法準確支付的商品。

輸入

輸入數據僅一行,包含兩個正整數 ab ,它們之間用一個空格隔開,表示小凱手 中金幣的面值。

輸出

輸出文件僅一行,一個正整數 N ,表示不找零的情況下,小凱用手中的金幣不能準確支付的最貴的物品的價值。

樣例輸入

3 7

樣例輸出

11

樣例說明

小凱手中有面值爲3和7的金幣無數個,在不找零的前提下無法準確支付價值爲1、 2、4、5、8、11 的物品,其中最貴的物品價值爲 11,比 11 貴的物品都能買到,比如:
12=3×4+7×0
13=3×2+7×1
14=3×0+7×2
15=3×5+7×0

數據範圍與約定

對於 30%的數據: 1a,b50
對於 60%的數據: 1a,b104
對於 100%的數據:1a,b109

解題思路

因爲(a,b)=1 ,所以{a,2a,3a,...,(b1)a} 爲模b 的完全剩餘系。
T 是一個a,b 無法表示的數且Tka(mod b)(1kb1) .
Tka ,則T 一定可以表示爲ka+nbn0 ,所以T<ka ,則此時T 最大爲kab .
顯然,當k 最大時T 最大,所以T=(b1)ab=abab .

Code

#include<cstdio>
using namespace std;
typedef long long LL;
LL a, b;
int main(){
    scanf("%lld%lld", &a, &b);
    printf("%lld",  a * b - a - b);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章