階梯Nim問題

2022-05-03 16:12:28 字數 613 閱讀 4923

有\(n\)個位置\(1...n\),每個位置上有\(a_i\)個石子。有兩個人輪流操作。操作步驟是:挑選\(1...n\)中任一乙個存在石子的位置\(i\),將至少1個石子移動至\(i-1\)位置(也就是最後所有石子都堆在在0這個位置)。誰不能操作誰輸。求先手必勝還是必敗。

問題等價於,求位置為奇數的\(a_i\)的異或和,若異或和等於0,則先手必敗,否則先手必勝。你可能已經注意到這非常像nim遊戲。其實這個遊戲恰好等價於:將每個奇數字置的數\(x\)看成一堆有\(x\)個石子的石子堆,然後玩nim遊戲。

拿走某一堆石子的一部分,相當於將某個奇位置的石子移動到它左邊的偶位置上。

如果大家都只動奇位置的石子,那麼這等價於兩人在玩nim遊戲。

但如果有人想打破規則呢?

假設nim遊戲先手必勝,那麼先手肯定優先玩nim遊戲;如果後手試圖破壞局面,將某個偶位置上的若干石子移動到了左邊的奇位置i上,那麼先手可以將這若干個剛移到i的石子繼續移動到i左邊的偶位置上,對nim局面依然沒有任何影響,除非後手回頭來繼續動奇位置的石子,那也只能是輸。

那麼如果nim遊戲先手必敗,也是同理,後手可以用相同的方式迫使先手玩nim遊戲,直到輸為止。

因此,奇數字置的石子的相關資訊,就直接決定了階梯\(nim\)問題的結果。

階梯NIM和樹上NIM

有 n 個位置 1.n 每個位置上 a i 個石子。有兩個人輪流操作。操作步驟是 挑選 1.n 中任一乙個存在石子的位置 i 將至少1個石子移動至 i 1 位置 也就是最後所有石子都堆在在0這個位置 誰不能操作誰輸。求先手必勝還是必敗。問題等價於,求位置為奇數的 a i 的異或和,若異或和等於0,則...

Nim遊戲與階梯Nim博弈

問題描述 一共有n堆石子,編號1 n,第i堆中有個a i 個石子。每一次操作alice和bob可以從任意一堆石子中取出任意數量的石子,至少取一顆,至多取出這一堆剩下的所有石子。兩個人輪流行動,取光所有石子的一方獲勝。aice為先手.給定a,假設兩人都採用最優策略,誰會獲勝?問題分析 從簡單情況分析,...

hdu5996 階梯nim博弈

第一次接觸到階梯nim博弈 看了這篇部落格,講得比較清楚 大意就是給一顆樹 樹的節點上放有石子,每次只能把石子往父節點移動一下,規定不能移動者輸。看了階梯博弈後大概就能懂這題的意思了,直接把深度為奇數的節點異或起來就可以了 include include include include includ...