切換
舊版
前往
大廳
主題

ZeroJudge - d417: 10976 - Fractions Again?! 解題心得

Not In My Back Yard | 2018-10-16 21:22:55 | 巴幣 0 | 人氣 200

題目連結:


題目大意:
給定K(0 < K ≦ 10, 000),代表有一分數為 1/K。

而對於這樣的分數,我們必定可以找到兩正整數X、Y(X ≧ Y),滿足
1/K = 1/X + 1/Y

現在,給定K值,求所有符合上式的X、Y數對。



範例輸入:
2
12



範例輸出:
2
1/2 = 1/6 + 1/3
1/2 = 1/4 + 1/4
8
1/12 = 1/156 + 1/13
1/12 = 1/84 + 1/14
1/12 = 1/60 + 1/15
1/12 = 1/48 + 1/16
1/12 = 1/36 + 1/18
1/12 = 1/30 + 1/20
1/12 = 1/28 + 1/21
1/12 = 1/24 + 1/24



解題思維:
藉由觀察一些測資,我們不難發現:符合關係式的Y一定介於 K+1 ~ 2K 之間。因此窮舉所有可能的Y,試圖找出相應的X。如果對於這個Y,有一個整數X存在,即是一組解。

因為我們要窮舉Y,因此在每一次尋找時的Y值是固定的,因此:
最後推得 KY / (Y-K)即是對於當前Y值相應的X值。

因此我們可以先判斷KY可否被Y-K整除,可以就把X算出來,作為一組解;反之,就繼續到下一個Y值。



至於為何Y只會介於 K+1 ~ 2K 呢?

因為X ≧ Y,我們馬上就能看出Y的上界為2K。再大上去就不符合X ≧ Y了,而且X=Y=2K一定是一組解。

再來,因為Y ≠ K(如果Y=K,從上面推的式子來看,X未定義),所以Y > K。而大於K且最近K的整數為K+1,這便是Y的下界。

因此,Y的值介於 K+1 ~ 2K 之間。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作