題目**
題意為: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...