切換
舊版
前往
大廳
主題

ZeroJudge - d791: 00756 - Biorhythms 解題心得

Not In My Back Yard | 2019-02-24 23:00:52 | 巴幣 0 | 人氣 134

題目連結:


題目大意:
已知「身體」、「情感」、「智能」的巔峰之週期分別為 23 、 28 、 33 天。
給定四個整數 p 、 e 、 i 、 d (皆介於 0 ~ 365 之間),代表「身體」、「情感」、「智能」的巔峰分別發生在今年的第 p 天、第 e 天以及第 i 天。求從第 d 天之後,還要經歷多少天,「身體」、「情感」、「智能」才會同時到達顛峰。

當 p = e = i = d = -1 時,輸入結束。



範例輸入:
0 0 0 0
0 0 0 100
5 20 34 325
4 5 6 7
283 102 23 320
203 301 203 40
-1 -1 -1 -1


範例輸出:
Case 1: the next triple peak occurs in 21252 days.
Case 2: the next triple peak occurs in 21152 days.
Case 3: the next triple peak occurs in 19575 days.
Case 4: the next triple peak occurs in 16994 days.
Case 5: the next triple peak occurs in 8910 days.
Case 6: the next triple peak occurs in 10789 days.


解題思維:
這題是中國剩餘定理(Chinese Remainder Theorem)的最佳範例,見維基的說明頁面

我們可以看出,如果下一次三個同時達到巔峰的天數為 x ,則:
x + d ≡ p (mod 23)
x + d ≡ e (mod 28)
x + d ≡ i (mod 33)
所以我們可以根據中國剩餘定理推出
x ≡ p × 5544 + e × 14421 + i × 1288 - d (mod 21252)
此即為答案。

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

創作回應

相關創作

更多創作