1. 程式人生 > 其它 >洛谷P3951小凱的疑惑/[藍橋杯 2013 省] 買不到的數目

洛谷P3951小凱的疑惑/[藍橋杯 2013 省] 買不到的數目

看了洛谷中的各個題解,感覺除了exgcd都很突兀沒什麼思路的...

感覺這個解法對於我來說還算有點循序漸進的過程...

首先我們應該會考慮一個問題:

為什麼從某個數開始,它之後的每個數都能被線性表示.

我們假設a<b(反了就swap一下)

設k滿足ka<b&&(k+1)a>b(沒有等於是因為gcd==1)

那麼前k個能表述的元素的相鄰的兩個元素之間的差為a

第k個和第k+1個元素(也就是b)之間的差為b%a(b=ka+d差就是d)

第k+1個和第k+2個元素之間的差為a-b%a 

第k+2個和第k+3個元素之間的差為b%a(因為第k+3個元素時b+a)

那麼在從xb到xb+a這一段 如果有一個空位不能被填滿那麼這個空位將一直持續直到某一次取模時把這個空位填滿

那麼什麼時候能把空位全部填滿了,後面的每一個數也就能被線性表示了

什麼時候能填滿呢

∵gcd(a,b)=1

∴gcd(a,b%a)=1

∴lcm(a,b%a)=a*(b%a)

那麼感性理解一下就可以知道每一輪都會有一個新的餘數被填入上述的空位

總共有1到a-1,a-1個空位

那麼就要輪a-1輪

那麼在(a-1)*b之前的a箇中必然會有一個不能被表示

這個數也就是(a-1)*b-a(因為這一輪新添進來的數是b+0,那麼上一輪必然空缺的是b-a)

由此得到答案.....