Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 10165:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.

Similar presentations


Presentation on theme: "1 10165:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim."— Presentation transcript:

1 1 10165:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim 兩個人輪流 (Jack 先取 ) 從 N 堆的 石頭堆 ( 每堆數量不盡相同 1~~ 2*10^9 ) 中取石頭, 可以任選一堆取,而每次最少取一個,最多不限 數量﹝但只能取同一堆內的石頭﹞,拿走最後一顆 石頭的人勝利,由此判斷 Jack 是否可以獲得勝利。

2 2 題意範例: 1 Jack 100 100  Yes Jim 3 Jack 5 1 1 5 1  Yes Jim 1 4 Jack 1 1 1 1 1 1  No Jim 1 1 解法:將每一堆中石頭數量轉為二進位再 作 XOR 運算

3 3 解法 ( 續 ) : 將每一堆數量用二進位來表示,且把各堆相對應的 bit 值 (0 或 1) 加起來時,會有下列幾種情形: 1. 每一 bit 總合值都是偶數 → 如果雙方每次取石頭數都沒有失常, 則遇到此情況必敗。 2. 若某一 bit 總合值≧ 2 → 則一定是來自不同堆,因為各堆轉為二進 位後每一 bit 皆為 0 或 1 。 3. 若遇到全部 bit 值皆為偶數 → 則無論如何取石頭,取完之後所剩 下的每 bit 總合值必定不全為偶數。 4. 若遇到全部 bit 值不全都為偶數 → 則一定有方法可以讓取完之後 所剩下的每 bit 總合值必定全為偶數。 由此可知,若想取得勝利,則就要讓自己取完之後 所剩下全部 bit 總合值皆為偶數,使對方處於必敗的 狀況下。

4 4 解法範例: 3 45 =>Bit(2~0) 總合分別為: 2 1 2 2*1+1 4*1 4*1+1 A 第一堆取 2 =>Bit(2~0) 總合分別為: 2 0 2 1 4*1 4*1+1 B 第三堆取 5(4+1) =>Bit(2~0) 總合分別為: 1 0 1 1 4*1 0 A 第二堆取 3(2+1) =>Bit(2~0) 總合分別為: 0 1 1 110 B 取 1 A 取 1 =>A 獲勝

5 5 討論: 這類遊戲稱為 Nim Game ,雖然看似複 雜,但卻有方法可以在一開始即推導出 是否能夠勝利,若推導出可以獲勝,則 只要自己不出錯就可以勝利,若推導出 無法確定得勝,則一旦對手不出錯就無 法得勝,因此這並不是一種很公平的遊 戲。


Download ppt "1 10165:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim."

Similar presentations


Ads by Google