来源:POJ1704
注意,实际上可以把这些东西划分成nim博弈,所以只需要注意当扩大的时候必胜方式一定减小这个的就对了
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
const int MAXN = 10010;
int p[MAXN];
int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",p+i);
}
if(n&1) p[n++] = 0;
sort(p,p+n);
int ans = 0;
for(int i=0;i+1<n;i+=2){
ans ^= (p[i+1]-p[i]-1);
}
if(!ans) puts("Bob will win");
else puts("Georgia will win");
}
return 0;
}