從最簡單的Nim模型開始html
它的定義是這樣的spa
有\(n\)堆石子,兩我的能夠從任意一堆石子中拿任意多個石子(不能不拿)或把一堆數量很多於\(2\)石子分爲兩堆不爲空的石子,無法拿的人失敗。問誰會勝利code
這個問題的本質仍是Nim遊戲,能夠利用SG定理來解釋htm
經過觀察不難不發現,操做一與普通的Nim遊戲等價blog
操做二其實是將一個遊戲分解爲兩個遊戲,根據SG定理,咱們能夠經過異或運算把兩個遊戲鏈接到一塊兒,做爲一個後繼狀態遊戲
煮個栗子get
SG(3)的後繼狀態有\(\{ (0),(1),(2),(1,2) \}\)他們的SG值分別爲\(\{ 0,1,2,3 \}\),所以\(SG(3)=mex\{ 0,1,2,3 \}=4\)class
另外這種遊戲還有一個很是神奇的性質方法
\[SG\left( x\right) =\begin{cases}x-1\left( x\mod4=0\right) \\ x\left( x\mod4=1 \lor 2\right) \\ x+1\left( x\mod4=3\right) \end{cases}\]im
而後把這個結論背過就好啦233
根據上面的遊戲,咱們定義Multi-SG遊戲
後繼
能夠爲多個單一遊戲
。注意在這裏要分清楚後繼
與多個單一遊戲
對於一個狀態來講,不一樣的劃分方法會產生多個不一樣的後繼,而在一個後繼中可能含有多個獨立的遊戲
一個後繼狀態的SG值即爲後繼狀態中獨立遊戲的異或和
該狀態的SG值即爲後繼狀態的SG值中未出現過的最小值
難度跨度好大啊QWQ。。
直接放題解吧