Acwing 892 台階 Nim遊戲

2021-09-26 18:28:11 字數 801 閱讀 4559

現在,有乙個n級台階的樓梯,每級台階上都有若干個石子,其中第i級台階上有ai個石子(i≥1)。

兩位玩家輪流操作,每次操作可以從任意一級台階上拿若干個石子放到下一級台階中(不能不拿)。

已經拿到地面上的石子不能再拿,最後無法進行操作的人視為失敗。

問如果兩人都採用最優策略,先手是否必勝。

輸入格式

第一行包含整數n。

第二行包含n個整數,其中第i個整數表示第i級台階上的石子數ai。

輸出格式

如果先手方必勝,則輸出「yes」。

否則,輸出「no」。

資料範圍

1≤n≤10^5,

1≤ai≤10^9

輸入樣例:

3

2 1 3

輸出樣例:

yes
勝者:只要維持自己取完石子之後奇數台階上的石子數量異或為0,就可以保持必勝狀態

因為偶數台階上的石子必然要向奇數台上放,如果奇數台階上的石子異或不為0的話,就可以通過從某乙個奇數台階上拿下來一些石子放在偶數台階上使得奇數台階上的石子數量異或變為0

如果奇數台階上的石子異或原本為0,由於每次操作不能不拿石子,所以操作後奇數台階上的石子異或變為非0

#includeusing namespace std;

int main()

if (res) puts("yes");

else puts("no");

return 0;

}

ACWing 892 台階 Nim遊戲

有個nn n級台階,每級台階有若干石子,第i ii級台階上有a ia i ai 個石子 i 1 i ge 1 i 1 兩個玩家輪流操作,每個玩家可以從第i ii級台階上拿任意多個石子放到第i 1 i 1i 1級台階上,可以全拿但不能不拿。已經拿到地面上的石子不能再拿。無法操作者視為失敗。問先手是否存...

第39階台階

小明剛剛看完電影 第39級台階 離開電影院的時候,他數了數禮堂前的台階數,恰好是39級 站在台階前,他突然又想著乙個問題 如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級台階,有多少種不同的上法呢?請你利用計算機的優勢,幫助小明尋...

39階台階問題

39級台階問題 小明看完電影 第39級台階 離開電影院的時候,他數了數視覺的台階數,恰好是39級。站在台階前,他突然又想起乙個問題 如果我每一步只能邁上1個或2個台階,先邁左腳,然後左右交替,最後一步邁右腳,也就是說一共要邁偶數步。那麼,上完39級台階,有多少種不同的上法呢?請利用計算機的優勢,幫助...