欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-29 08:58:25
...
两个人玩游戏,在一个N*N的矩阵里面。一开始给出矩阵的大小。然后两个人轮流玩游戏,问谁可以赢。


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


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

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

具体看一下下面的图片

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

#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;
}


相关标签: 博弈