切換
舊版
前往
大廳
主題

ZeroJudge - e603: 10104 - Euclid Problem 解題心得

Not In My Back Yard | 2020-01-14 00:37:06 | 巴幣 0 | 人氣 284

題目連結:


題目大意:
根據歐幾里得(Euclid)所述:對於任意正整數對 A 、 B ,必定存在整數解 X 、 Y 滿足 AX + BY = D 。其中 D 為 A 和 B 的最大公因數。

現給定兩正整數 A 、 B (A 、 B < 1000000001),請輸出 X 、 Y 、 D 。如果有多組(X, Y),則找到 |X| + |Y| 最小的那一組。如果還有多組符合,則輸出 X ≦ Y 的那一對。



範例輸入:
4 6
17 17


範例輸出:
-1 1 2
0 1 17


解題思維:
根據擴展歐幾里得演算法(Extended Euclidean Algorithm),我們找到的(X, Y)保證滿足|X| + |Y| 是最小的。而不會有其他滿足最小的,因此直接該對(X, Y)的解即是所求。所以直接照著演算法跑即可。

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

創作回應

相關創作

更多創作