Moore s Nimk博弈問題的證明

2021-09-10 05:59:23 字數 431 閱讀 8675

問題描述:兩個人玩取石子遊戲,共有n堆石子,每個人每次可以從k堆石子裡面任意多個石子,不能取的人輸

取勝方法:把n堆石子的石子數用二進位制表示,統計每個二進位制位上1的個數,若每一位上1的個數mod(k+1)全部為0,則必敗,否                 則必勝。

方法證明: 如果全0    必敗

(1)如果每個二進位制位的1的個數mod(k+1)都為0    則為必敗態(思考一下為什麼   ,這個很重要)

(2)如果有乙個二進位制位的1的個數mod(k+1)不為0,則可以通過一次操作,使其為 0 .

(3)如果有二個二進位制為的1的個數mod(k+1)不為0 ,則通過 一次迴圈操作(甲乙都操作一次),使其為0 

(4)如果有三個個二進位制為的1的個數mod(k+1)不為0 ,則通過 一次迴圈操作(甲乙都操作一次),使其轉3.

則判斷取勝方法得證

問題 B Cly的博弈

第一行查詢數字q 1 q 1e5 接下來q行每行輸入乙個數字n 1 n 1e5 對於每次查詢如果先手勝,輸出clynb,否則輸出dd bondnb 最後輸出乙個和sum。樣例1輸入 11 樣例2輸入 12 樣例1輸出 dd bondnb 0 樣例2輸出 clynb 1一道博弈題,可以發現如果n為偶數...

紙牌博弈問題

題目 有乙個整型陣列a,代表數值不同的紙牌排成一條線。玩家a和玩家b依次拿走每張紙牌,規定玩家a先拿,玩家b後拿,但是每個玩家每次只能拿走最左或最右的紙牌,玩家a和玩家b都絕頂聰明,他們總會採用最優策略。請返回最後獲勝者的分數。給定紙牌序列a及序列的大小n,請返回最後分數較高者得分數 相同則返回任意...

紙牌博弈問題

題目 有乙個整型陣列a,代表數值不同的紙牌排成一條線。玩家a和玩家b依次拿走每張紙牌,規定玩家a先拿,玩家b後拿,但是每個玩家每次只能拿走最左或最右的紙牌,玩家a和玩家b都絕頂聰明,他們總會採用最優策略。請返回最後獲勝者的分數。給定紙牌序列a及序列的大小n,請返回最後分數較高者得分數 相同則返回任意...