题目意思是两个人玩游戏,给一个n*n 的方格阵,要求把石头从第一个格子起竖或横移动到相邻的一个没到过的格子,问先手赢还是后手赢。
这道题开始好像没什么思路,就从必胜状态和必败状态,就从n=3、n=4这样的开始分析,假设第一个格子是必胜或者必败状态,结果发现这样一看好像是可以由小到大递推的,再好好看一下格子的分布情况,发现跟奇偶性有关,就做出来了。
#include <algorithm>
#include <bitset>
#include <cassert>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <iomanip>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
using namespace std;
typedef long long ll;
int main()
{
int n;
while (scanf ("%d",&n)!=EOF){
if (n==0) break;
if (n%2==1) printf("ailyanlu\n");
else printf("8600\n");
}
return 0;
}