第一题阶梯博弈 之前HDU1730做过两个棋子的,这次是n个棋子,那么2个一组,它们之间的距离就是一个nim,两组之外不需要管,因为前面一个动了,后面跟进维持距离,后面动了,就是距离缩短了,所以某一组的第一个与前一组的后一个的距离是无所谓的。
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1000+5;
int pos[maxn];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int ans=0;
for(int i=0;i<n;i++) {cin>>pos[i];}
sort(pos,pos+n);
if(n&1) ans^=pos[0]-1;
for(int i=n&1;i<n-1;i++) ans^=pos[i+1]-pos[i]-1;
if(ans==0) cout<<"Bob will win"<<endl;
else cout<<"Georgia will win"<<endl;
}
return 0;
}