【题目描述】
小明和小红经常玩一个博弈游戏。给定一个n×n的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?
【题解】
我们可以把这道题看做填骨牌的问题,也就是用1*2(或2*1)的牌能否填满整个N*N的图形。这个问题我们直接判断n的奇偶性就行了。
代码如下:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std;
int n;
int main()
{
while(true)
{
scanf("%d",&n);
if(n==0)break;
if(n&1)printf("Bob\n");
else printf("Alice\n");
}
return 0;
}