记录一个菜逼的成长。。
sg[0]=0
当x=8k+7时sg[x]=8k+8,
当x=8k+8时sg[x]=8k+7,
其余时候sg[x]=x;(k>=0)
打表找规律可得,数学归纳法可证。
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cstdlib>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <list>
#include <deque>
#include <cctype>
#include <bitset>
using namespace std;
#define cl(a) memset(a,0,sizeof(a))
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
const int INF = 0x3f3f3f3f;
int main()
{
int T;scanf("%d",&T);
while(T--){
int n,ans = 0,sg;
scanf("%d",&n);
for( int i = 0,x; i < n; i++ ){
scanf("%d",&x);
if(x % 8 != 0 && x % 8 != 7)sg = x;
else {
if(x % 8 == 0)sg = x - 1;
else sg = x + 1;
}
ans ^= sg;
}
printf("%s\n",ans?"First player wins.":"Second player wins.");
}
return 0;
}