anti-nim博弈是nim博弈的變形,它的定義是:
給定 \(n\) 堆物品,第 \(i\) 堆物品有 \(a_i\) 個,兩人輪流取,每次可以任選一堆取走任意多個物品,可以取光但不能不取,最後把物品全部取完者失敗判斷先手是否有必勝策略
先手必勝當且僅當:
每堆的物品數都為 \(1\) 且nim和為 \(0\)
有些堆的物品數大於 \(1\) 且nim和不為 \(0\)
證明:第一種情況:每堆物品數都為 \(1\) 且nim和為 \(0\) ,那麼 \(n\) 為偶數,易知先手必勝
第二種情況:
若nim和為 \(0\)
至少有兩堆物品數大於 \(1\) ,則先手決策完之後,必定至少有一堆物品數大於 \(1\) 且nim和不為 \(0\) ,由上段的論證我們可以發現, 此時,無論先手如何決策,都只會將遊戲帶入先手必勝局,所以先手必敗
luogu 4279
#includeusing namespace std;
int main()
if(maxx == 1)
printf("%s\n", res == 0 ? "john" : "brother");
else
printf("%s\n", res ? "john" : "brother");
}return 0;
}
Nim博弈與Anti Nim博弈
nim博弈的原題 問題1 今有若干堆火柴,兩人依次從中拿取,規定每次只能從一堆中取若干根,可將一堆全取走,但不可不取,最後取完者為勝,求必勝的方法。定義 若所有火柴數異或為0,則該狀態被稱為利他態,用字母t表示 否則,為利己態,用s表示。注意 這篇博文是先定義s和t,再通過它們的性質推出結論。定理1...
博弈論 威佐夫博弈原理與證明
威佐夫博弈的定義是 有兩堆若干個物品,兩人輪流從某一堆物品中取至少乙個或同時從兩堆中取相同數量的物品,不能不取,最後把物品全部取完者勝利 現在給出兩堆物品的數量 n,m 判斷先手是否有策略必勝 我們用 a,b 表示第一堆數量為 a 第二堆數量為 b 的局勢,並規定 a leq b 因為所有局勢經過互...
bzoj 1022 博弈 Anti Nim(模板)
具體證明請見賈志豪大犇的2009 orz,這裡直接貼結論 對於anti sg 的 1 如果所有子遊戲的sg異或和 0且所有子遊戲的sg 1則先手必勝 2 如果所有子遊戲的sg異或和 0且存在子遊戲的sg 1則先手必勝 兩種情況都不滿足的則先手必輸 var t,n,cnt,tot longint i ...