题目链接:uva 11534 - Say Goodbye to Tic-Tac-Toe
题目大意:给定一个1*n的个子,每次操作可以选中一个未填过的个子画X或者O,如果该次操作形成了XX或者OO,那么该次操作者视为失败,人为先手,对于给定状态(注意当前状态也算在步数中),问是否可以战胜电脑。
解题思路:对于固定长度,两端的可能有空,X,O,组合情况共有9种,虽然有些情况等价,但是为方便处理,分为9种情况考虑。预先处理出各个长度下9种情况的SG值。然后对于给定状态,枚举位置放X和O,判断新状态的Nim和。
#include <cstdio>
#include <cstring>
#