Luogu P4136 谁能赢呢?

本文探讨了一个两人轮流移动石头的棋盘游戏,目标是在一个n×n的矩阵上移动石头,每回合只能向上、下、左、右移动一格,且不能重复访问已访问过的格子。通过将棋盘黑白染色和分析奇偶性,我们得出结论,当格子数量为偶数时,先手必胜;反之,先手必败。

题目大意

%  给定一个 n×nn\times nn×n 的矩阵,一个石头被放在棋盘的左上角。两人轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。
  假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?
  数据范围 1⩽n⩽100001\leqslant n\leqslant 100001n10000

题解

%  将棋盘黑白染色,显然一位选手能到达的所有格子的颜色均相同。
  我们考虑先手和后手交替行动一次,则棋盘的大小减小了 1×21\times 21×2,不对奇偶性产生影响,如果假定最终的棋盘上的每个格子都被走过,则最终胜负只与格子数量的奇偶性相关,即有偶数个格子的时候,先手必胜,反之先手必败。
  那如果棋盘没有被走完呢?可以发现,必胜方总有办法在棋盘要被分成两部分的时候,将棋盘分出一份偶数个格子的区域和另一份与原来棋盘格子数量奇偶性相同的区域,并且后续的决策只能在后面那块区域中,换言之,必胜方总能找到策略维持他的优势。

代码

#include<stdio.h>
int n;
int main(){
	while(~scanf("%d",&n)&&n)
		puts(n&1?"Bob":"Alice");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值