提高組NOIP2017 小凱的疑惑(附證明)

2021-08-30 13:27:43 字數 2533 閱讀 3743

小凱的疑惑

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

輸入輸入資料僅一行, 包含兩個正整數 a 和 b, 它們之間用乙個空格隔開, 表示小凱手中金幣的面值

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

樣例輸入

3 7樣例輸出

11【輸入輸出樣例 1 說明】 小凱手中有面值為 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%的資料: 1 ≤ a, b ≤ 50。

對於 60%的資料: 1 ≤ a, b ≤ 10,000。

對於 100%的資料: 1 ≤ a, b ≤ 1,000,000,000。

analysis

水題???

為什麼我覺得不好想啊……證明辣麼難

但各路大神紛紛表示打表打表打表

遇到數學問題就打表找規律

然後的然後就顯而易見了

a ns

=a∗b

−(a+

b)

ans=a*b-(a+b)

ans=a∗

b−(a

+b)可我還是不服啊,為什麼為什麼為什麼???

來亂胡證明一下,可以反證試一下:

假設存在一組正整數解使得ax+

by=a

∗b−a

−b

ax+by=a*b-a-b

ax+by=

a∗b−

a−b則a(x

+1)+

b(y+

1)=a

ba(x+1)+b(y+1)=ab

a(x+1)

+b(y

+1)=

ab發現 b∣(

x+1)

,a∣(

y+1)

b|(x+1),a|(y+1)

b∣(x+1

),a∣

(y+1

)(因為只有這樣左邊才可能含有a*b)

又因為x

>=0

,y

>=0

x>=0,y>=0

x>=0

,y>=0

–> x+1

>=1

,y+1

>=1

x+1>=1,y+1>=1

x+1>=1

,y+1

>=1

–> a(x

+1)+

b(y+

1)

>=a

∗b+b

∗a=2

∗a

ba(x+1)+b(y+1)>=a*b+b*a=2*ab

a(x+1)

+b(y

+1)>=a

∗b+b

∗a=2

∗ab又已知a(x

+1)+

b(y+

1)=a

ba(x+1)+b(y+1)=ab

a(x+1)

+b(y

+1)=

ab,則假設不成立,找不出一組解使得

a x+

by=a

∗b−a

−b

ax+by=a*b-a-b

ax+by=

a∗b−

a−b那為什麼大於這個a∗b

−a−b

a*b-a-b

a∗b−a−

b的數又可以全部被湊出來呢??

(這段證明摘自這裡)

對於任意正整數c>=ab−a−b+1

即c+a+b>=ab+1

設c+a+b=ka+m(k>=b,1<=m<=a−1)

注意到(a,b)=1

由裴蜀定理,知存在x0,y0∈z使得

ax0+by0=1

故存在x1,y1∈z,−(b−1)<=x1<=−1

使得ax1+by1=m

(解釋一下,這裡的意思其實是設−(b−1)<=x1<=−1,一定存在整數y1y1使得ax1+by1=m成立。原因就是在整數x1的取值中一共有b−1個數,y1=(m−ax1)/b,總是可以找到x1使得m−ax1能被b整除)

顯然,y1>=1(ax1<0,m>0,b>0因此y1>=1)

於是,取x=k+x1−1,y=y1−1

注意到x1,y1的取值範圍,得x,y>=0

得ax+by=c

所以任意c>=ab−a−b+1都存在x,y>=0,ax+by=c

證畢code

還需要放???

當然不用

NOIP2017 小凱的疑惑

簡化一下問題,就是對於ax by c,求乙個最大的c,使得方程不存在非負整數解。我們設有一組特解 x0,y0 那麼根據此類直線方程的性質,則通解可表示為 x0 kb,y0 ka 顯然,存在一組特解 x1,y1 使得0 x1 b 1,我們試圖研究那些不存在非負整數解的情況,所以設y1 1。此時,c a...

Noip2017提高組 乳酪

noip 2017 提高組 不怎麼難啦 思路如下 首先先寫乙個函式判斷兩個洞是否相連,即兩洞之間距離是否小於等於球直徑 注意是直徑 struct dong dong p 1001 bool pd dong a,dong b 第二個難點在於如何判斷是否可以穿過乳酪,對此我們可以模擬老鼠鑽洞 run函式...

NOIP2017提高組 列隊

noip2017提高組 day2 t3 sylvia 是乙個熱愛學習的女孩子。前段時間,sylvia 參加了學校的軍訓。眾所周知,軍訓的時候需要站方陣。sylvia 所在的方陣中有 n m 名學生,方陣的行數為 n,列數為 m 為了便於管理,教官在訓練開始時,按照從前到後,從左到右的順序給方陣中的學...