簡化一下問題,就是對於ax+by=c,求乙個最大的c,使得方程不存在非負整數解。
我們設有一組特解(x0,y0),那麼根據此類直線方程的性質,則通解可表示為(x0-kb,y0+ka)。
顯然,存在一組特解(x1,y1),使得0<=x1
<=b-1,我們試圖研究那些不存在非負整數解的情況,所以設y1
<=-1。
此時,c=ax1+by1
<=a(b-1)+b(-1)=ab-a-b,說明所有無非負整數解情況的c必然不超過ab-a-b,但我們還需要證明當c=ab-a-b時無非負整數解。
直接用反證法即可。設c=ab-a-b時有非負整數解,則ax+by=ab-a-b,a(x+1)+b(y+1)=ab。
因為a,b互質,所以有a|y+1,b|x+1,故y+1>=a,x+1>=b,則a(x+1)+b(y+1)>=2ab,顯然矛盾,故當c=ab-a-b時無非負整數解。
1 #include 2ac**3using
namespace
std;
45 typedef long
long
ll;6
7int
main()
提高組NOIP2017 小凱的疑惑(附證明)
小凱的疑惑 描述小凱手中有兩種面值的金幣,兩種面值均為正整數且彼此互素。每種金幣小凱都有 無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。現在小 凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?注意 輸入資料保證存在 小凱無法準確支付的商品 輸入輸入資料僅一行,包含兩個正...
小凱的疑惑
小凱手中有兩種面值的金幣,兩種面值均為正整數且彼此互素。每種金幣小凱都有無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。現在小凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?注意 輸入資料保證存在小凱無法準確支付的商品。輸入格式 輸入資料僅一行,包含兩個正整數a和b,它們...
NOIP2017D1T1 小凱的疑惑解題心得
date 1 13 21 小凱手中有兩種面值的金幣,兩種面值均為正整數且彼此互素。每種金幣小凱都有無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。現在小凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?注意 輸入資料保證存在小凱無法準確支付的商品。輸入描述 輸入資料僅一行,...