甲,乙兩個人玩nim取石子遊戲。
nim遊戲的規則是這樣的:地上有n堆石子(每堆石子數量小於10000),每人每次可從任意一堆石子裡取出任意多枚石子扔掉,可以取完,不能不取。每次只能從一堆裡取。最後沒石子可取的人就輸了。假如甲是先手,且告訴你這n堆石子的數量,他想知道是否存在先手必勝的策略。
第一行乙個整數t<=10,表示有t組資料
接下來每兩行是一組資料,第一行乙個整數n,表示有n堆石子,n<=10000;
第二行有n個數,表示每一堆石子的數量
共t行,如果對於這組資料存在先手必勝策略則輸出"yes",否則輸出"no",不包含引號,每個單詞一行。
決定食用一些簡單的博弈論先。
設\(x\)為石子數
當且僅當\(x_1 \ xor \ x_2 \ xor \ x_3 \ xor \ ... \ xor \ x_n \not= 0\)時必勝
否則必敗
證明也很簡單
數學歸納法,對於一堆石子,直接拿走就贏了
對於很多堆,找到乙個\(1\)在最高位的數字,單獨拿出來,把這一堆拿成剩下的異或和那麼大就可以了,於是就成了必敗局面
寫起來也很簡單
updata:這篇文章太屑了(夾心王朝復辟!!!)
code:
#include int main()
return 0;
}
洛谷P2197 模板 nim遊戲 博弈論
甲,乙兩個人玩nim取石子遊戲。nim遊戲的規則是這樣的 地上有n堆石子,每人每次可從任意一堆石子裡取出任意多枚石子扔掉,可以取完,不能不取。每次只能從一堆裡取。最後沒石子可取的人就輸了。假如甲是先手,且告訴你這n堆石子的數量,他想知道是否存在先手必勝的策略。n im nimni m博弈的模板。定理...
洛谷P2197 模板 nim遊戲 博弈論
甲,乙兩個人玩nim取石子遊戲。nim遊戲的規則是這樣的 地上有n堆石子,每人每次可從任意一堆石子裡取出任意多枚石子扔掉,可以取完,不能不取。每次只能從一堆裡取。最後沒石子可取的人就輸了。假如甲是先手,且告訴你這n堆石子的數量,他想知道是否存在先手必勝的策略。ni mnim 博弈的模板。定理 nim...
洛谷 2197 模板 nim遊戲
題目描述 甲,乙兩個人玩nim取石子遊戲。nim遊戲的規則是這樣的 地上有n堆石子 每堆石子數量小於10000 每人每次可從任意一堆石子裡取出任意多枚石子扔掉,可以取完,不能不取。每次只能從一堆裡取。最後沒石子可取的人就輸了。假如甲是先手,且告訴你這n堆石子的數量,他想知道是否存在先手必勝的策略。輸...