Download presentation
Presentation is loading. Please wait.
1
1 10940: Throwing cards away II ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10940: Throwing cards away II 解題者:葉冠甫 解題日期: 2008 年 6 月 13 日 題意: 有 N 張牌,編號 1~N ,按編號順序疊成一疊,最 上面為 1 ,最底為 N 。 (N≤ 500000 ) 在牌剩下一張之前,重複以下操作 ” 將第一張牌 丟棄,第二張移到最底下 ” 求出最後剩下的牌的編號
2
2 題意範例: 7 6 19 6 10 4 16 4 解法: DP 解法範例:令 F(N) 為解答之函數,F(1)=1,F(2)=2 * 當 N 為偶數 => EX:6 =>123456 =>246 經過一輪之後剩下 (6 / 2=)3 個, 並照順序排列 對照 F(3) 解答的位置 =>123, F(6) 的解答為 4 故當 N 是偶數 => F(N) = F(N/2)*2
3
3 * 當 N 為奇數 => *EX:7=>1234567=>462 經過一輪之後剩下 (7 / 2 +1=)4 個 但位置會往左 rotate 一位 對照 F(3) 解答的位置 =>123, F(7) 的解答為 6 故當 N 是奇數 => F(N) = (F(N/2)%(N/2)+1)*2
4
4 結論: DP 解 F(N) = F(N/2)*2 (when N is even) = F(N) = (F(N/2)%(N/2)+1)*2 ( when N is odd )
5
5 討論: 此為 JosephusProblem, 有 O(1) 解法 可參考 http://mathworld.wolfram.com/Josephu sProblem.html
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.