题意:
有N堆石子,你可以取每堆的1-m个,也可以将这堆石子分成3堆,问你先手输还是赢
题解:
打表找规律可得:
sg[0]=0
当x=8k+7时sg[x]=8k+8,
当x=8k+8时sg[x]=8k+7,
其余时候sg[x]=x;(k>=0)
#include<cstdio> int main()
{
int t,n,ans,tp;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n),ans=;
for(int i=;i<=n;i++)
{
scanf("%d",&tp);
if(!tp)continue;
if(tp%==)ans^=tp-;
else if(tp%==)ans^=tp+;
else ans^=tp;
}
if(ans)puts("First player wins.");
else puts("Second player wins.");
}
return ;
}