您的位置:首页 > 其它

bzoj 2463: [中山市选2009]谁能赢呢?

2017-12-30 14:29 267 查看

Description

小明和小红经常玩一个博弈游戏。给定一个n×n的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?

Solution

容易发现:如果\(n\)是偶数,那么先手只要不往回走就是必胜,\(n\)是奇数则后手必胜.

#include <iostream>
#include <cstdio>
#define RG register
#define il inline
#define iter iterator
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;
typedef long long ll;
int n;
void work()
{
if(!n)return ;
if(n%2==0)puts("Alice");
else puts("Bob");
}

int main()
{
freopen("pp.in","r",stdin);
freopen("pp.out","w",stdout);
while(~scanf("%d",&n))work();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: