HDU 1564 Play a game(巴什博弈)脑洞

两个人玩游戏,在一个N*N的矩阵里面。一开始给出矩阵的大小。然后两个人轮流玩游戏,问谁可以赢。


游戏规则是,玩家从左下角出发。每次走一格。只能在前一个玩家的基础上,走原有格子的上面或者下面。
走最后一个格子的人赢(也就是说第一个不能走格子的人输)


别人归类为巴什博弈。给出矩阵大小,我们就可以知道矩阵中有多少个小方块。
当N是奇数的时候,有奇数个格子。
当N是偶数的时候,有偶数个格子。
偶数个格子的时候,可以分为若干个1*2格子,那么就有一种策略,每次走未走过且对应的格子。这样必然可以走偶数步。除去起点,那就是奇数步数。那么先手就可以赢。
反之后手赢。

这样代码就横简单了,判断下奇偶就可以

具体看一下下面的图片


#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int n;
	while(scanf("%d",&n),n)
	{
		if(n%2)
			printf("ailyanlu\n");
		else
			printf("8600\n");
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值