当前位置: 首页 > 工具软件 > nimgame2 > 使用案例 >

Nim game

宋经业
2023-12-01

给定 N 堆物品,第 i 堆物品有 A i 个。两名玩家轮流行动,每次可以任选一堆,取走任意多个物品,可把一堆取光,但不能不取。取走最后一件物品者获胜。两人都采取最优策略,问先手是否必胜.

我们把这种游戏称为 Nim 博弈。把游戏过程中面临的状态称为局面。整局游戏第一个行动的称为先手,第二个行动的称为后手。若在某一局面下无论采取何种行动,都会输掉游戏,则称该局面必败

我们只需要证明 a1⊕a2⊕ . . . ⊕ a n ≠ 0 是先手必胜状态,a1⊕a2⊕ . . . ⊕ an =0先手必败状态。

Rabbit and Grass

hdu  1849  

#include"bits/stdc++.h"


using namespace std;
int t,x,y;
int main()
{
	while(cin >> t && t)
	{
		cin >> x;
		for(int i=1;i<t;i++)
		{
			cin >> y;
			x = x^y;	
		}
		if(x) puts("Rabbit Win!");
		else puts("Grass Win!");
	}
	return 0;
 } 

 类似资料:

相关阅读

相关文章

相关问答