問題描述:兩個人玩取石子遊戲,共有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,請返回最後分數較高者得分數 相同則返回任意...