我们可以转化成阶梯Nim的模型…
我们从第i位取出x颗石子,就相当于第i堆可取的石子减少了x,第i+1堆可取的石子增加了x…
所以这就转化为了阶梯Nim…
阶梯Nim详解
代码如下:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
//by NeighThorn
using namespace std;
const int maxn=1000+5;
int cas,n,a[maxn];
signed main(void){
scanf("%d",&cas);
while(cas--){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
int ans=0;
for(int i=n;i>0;i-=2)
ans^=(a[i]-a[i-1]);
if(ans)
puts("TAK");
else
puts("NIE");
}
return 0;
}
by >_< NeighThorn