#阶梯NIM#Poj 1704 Georgia and Bob

题目

\(n\)个棋子摆放在x轴的正半轴上,

每次将棋子最多向左移动至上一个棋子之后(不能不移动),

不能操作为败,问先手是不是必胜


分析

这个模型可以转换成阶梯NIM的形式,

那么将奇数位置做NIM游戏就可以了,证明在dalao的博客里


代码

#include <cstdio>
#include <cctype>
#include <algorithm>
#define rr register
using namespace std;
int n,a[1011],ans; 
inline signed iut(){
	rr int ans=0; rr char c=getchar();
	while (!isdigit(c)) c=getchar();
	while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
	return ans;
}
signed main(){
	for (rr int T=iut();T;--T){
		n=iut(),ans=0;
		for (rr int i=1;i<=n;++i) a[i]=iut();
		sort(a+1,a+1+n);
		for (rr int i=n;i>0;i-=2) ans^=a[i]-a[i-1]-1;
		puts(ans?"Georgia will win":"Bob will win");
	}
	return 0;
}
posted @ 2021-01-12 17:48  lemondinosaur  阅读(51)  评论(0编辑  收藏  举报