hdu_5795_A Simple Nim(打表找规律的博弈)

题目链接:hdu_5795_A Simple Nim

题意:

有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 ;
}
上一篇:SORT UNIQUE|AGGREGATE|GROUP BY|ORDER BY|JOIN


下一篇:解决Mac Linux USB Loader“Couldn't get security scoped bookmarks”错误