SG函式 多校Chess

2021-07-15 16:35:30 字數 532 閱讀 3275

題目**

題意為:n*20的棋盤,剛開始有一些棋子在上面,棋子只能向前移動,不能向下或向上移動。如果該棋子前面有棋子,則可以跳過前面的棋子移動到下乙個空位,但是並不能跳過空位,來移動到下乙個空位。最後,誰不能移動棋子誰就輸。

sg函式

nim遊戲

#include #include #include #include #include #define maxn 200010

using namespace std;

int sg[1<<21];

int met[22];

int dfs(int temp)

memset(met,0,sizeof(met));

for(int i = 0; i < 20; i++)

}int main()

ans ^= sg[sum];

}if(ans)

printf("yes\n");

else

}return 0;

}

2016多校聯賽 hdu 5724 Chess

此題就是乙個sg函式的題目,需要找出每一行的sg值,然後異或就可以咯。找sg需要在初始化的時候就找,也就是在t之前,暴力找出所有情況的sg。注意這個題只有20行,所以狀態壓縮一下就可以,每一行有棋子的地方就置為1,每一的地方就是0.include include include include in...

SG函式和SG定理

大神鏈 我們先用乙個簡單的例子引入 考慮有這樣乙個遊戲,有3堆火柴,分別有a,b,c根,記為 a,b,c 每次乙個遊戲者可以從任意一堆中拿走至少一根火柴,也可以整堆拿走,但是不能從多堆火柴中拿 無法拿火柴的人輸 這個遊戲就叫做nim遊戲 舉個例子,假設a 1,b 2,c 3,若你先拿,你會怎麼辦呢?...

sg函式和sg定理

下面這篇解釋得很清楚。單個遊戲 sg 0 0 sg值為0的有且只有必敗態 sg x mex sg y x的所有後繼狀態中 第乙個不能達到的sg值,則x可到達sg為0 sg x 1的狀態 組合遊戲 可將sg值看作為石子數,則轉化為nim取石子遊戲,總遊戲的勝負由sg的異或和決定。hdu1848 1 i...