P10501 Cutting Game
P10501 Cutting Game
题目大意
给定一张
思路
因为
这道题的必败态就是
但是必败态有时候并不好找,还有一种处理方法是,如果下一步的状态是必胜态,则下一步不能走。对于这道题,必胜态就是
int dfs(int n, int m) {
if (f[n][m] != -1) return f[n][m];
vector<int> vec;
_for(i, 2, n - 2) vec.push_back(dfs(i, m) ^ dfs(n - i, m));
_for(i, 2, m - 2) vec.push_back(dfs(n, i) ^ dfs(n, m - i));
return f[n][m] = mex(vec);
}