这题可以完全转化为台阶博弈.就看你会不会转化了.//下面讲讲怎么转化,不会台阶博弈的,就...
我们可以把我们可以两个棋子之间中的空隙看成台阶的石子数,向左移看成石子往下传递石子.然后就是台阶博弈了?
下面讲讲台阶博弈怎么做?
台阶博弈是这样的:

现在,有一个n级台阶的楼梯,每级台阶上都有若干个石子,其中第ii级台阶上有ai个石子(i≥1)。
两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。
已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。

这个怎么做呢..nim博弈就不解释了ε唉~做法就是奇数堆异或为0就胜.
代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N=1005;
int a[N];
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        int n;
        cin>>n;
        int ans=0;
        for(int i=1;i<=n;i++)   
        {
            cin>>a[i];
        }
        sort(a+1,a+1+n);
        for(int i=n;i>0;i-=2)
        {
            ans^=(a[i]-a[i-1]-1);
        }
        if(ans) puts("Georgia will win");
        else    puts("Bob will win");
    }
    return 0;
}