1. 程式人生 > >【2018沈陽現場賽k】

【2018沈陽現場賽k】

targe ont 約瑟夫環問題 gin 運行 沈陽 的人 利用 約瑟夫環

Let the Flames Begin- 約瑟夫環數學推導

題意:有 n 個人圍成一個圈,從 1 開始報到第 k 個人出環,問第 m 個出環的人是誰,n、m、k <= 1e18 且 min(m,k)<= 2e6。

Sample Input
20
10 1 2
10 2 2
10 3 2
10 4 2
10 5 2
10 6 2
10 7 2
10 8 2
10 9 2
10 10 2
10 1 3
10 2 3
10 3 3
10 4 3
10 5 3
10 6 3
10 7 3
10 8 3
10 9 3
10 10 3

Sample Output

Case #1: 2
Case #2: 4
Case #3: 6
Case #4: 8
Case #5: 10
Case #6: 3
Case #7: 7
Case #8: 1
Case #9: 9
Case #10: 5
Case #11: 3
Case #12: 6
Case #13: 9
Case #14: 2
Case #15: 7
Case #16: 1
Case #17: 8
Case #18: 5
Case #19: 10
Case #20: 4

剛開始看到這道題的時候,感覺與計蒜客上有關隊列的練習題十分類似,所以便利用隊列的知識來解決,對於題目給出的測試案例,運行結果是正確的,可是提交上去
顯示超時,百思不得其解,最終只有放棄。

後來看了題解才知道要使用約瑟夫環問題的數學解,
代碼:

【2018沈陽現場賽k】