切換
舊版
前往
大廳
主題

ZeroJudge - e535: 11344 - The Huge One 解題心得

Not In My Back Yard | 2019-11-17 15:59:42 | 巴幣 0 | 人氣 159

題目連結:


題目大意:
給定一正整數 N (0 < N ≦ 2000),代表有 N 筆測試資料。每筆測試資料佔兩列。第一列給定一正整數 M (0 ≦ M ≦ 10 ^ 1000) ;第二列給定一集合 S 的元素數量(最多 12 個),以及 S 當中的元素(值皆介於 1 ~ 12 之間)。

試問, M 可否被 S 中的所有元素各自地整除?可以的話,輸出「Wonderful.」;反之,輸出「Simple.」。輸出格式請參見範例輸出。



範例輸入:
4
0
12 1 2 3 4 5 6 7 8 9 10 11 12
379749833583241
1 11
3909821048582988049
1 7
10
3 1 2 9


範例輸出:
0 - Wonderful.
379749833583241 - Wonderful.
3909821048582988049 - Wonderful.
10 - Simple.


解題思維:
先將集合 S 中的所有數字取它們的最小公倍數(在此設為 X)。

接著對 M 套用以前提過的方法。即可知道 M 是否為 X 的倍數。而如果 M 是 X 的倍數,若且唯若 S 中的元素可各自整除 M 。所以求 M 與 X 的關係即可知道所求結果。

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

創作回應

心彩
先將集合 S 中的所有數字乘在一起形成一個新的、比較大的數字(在此設為 X)。 直接把所有數字乘起來是不對的
2023-06-12 17:26:38
Not In My Back Yard
說個笑話:
當年的我在 Zerojudge 解出這題的若干分鐘後,也跑去 UVa 解了一下。發現原先(也就是現在文章內的解法)是錯的,因而改寫成取最大公因數的版本。

然而三週後寫解題心得就完全忘記這回事了,CodePile 那邊放的程式也是舊的,所以完全沒發現。
2023-06-12 19:40:12
Not In My Back Yard

有夠蠢對吧?
哈哈
2023-06-12 19:40:36
Not In My Back Yard
總之,感謝提醒。
2023-06-12 19:40:59

更多創作