您的位置:首页 > 大数据 > 人工智能

【lightOJ】 Again Stone Game (博弈,SG函数)

2014-11-08 23:06 495 查看
题目链接:

http://acm.bnu.edu.cn/v3/problem_show.php?pid=13215

-------------------------

这两天在刘汝佳的书里看到了这道题,规律为sg(n)=n/2 (n为偶数),sg(n)=sg(n/2) (n为奇数)。

-------------------------

打表列出SG函数然后找规律。然后找了半小时都没找出规律......T_________________T

果然博弈对归纳规律的能力也是要求很高啊.

规律:

n为奇数时,n一直除以2,直到除直到得到偶数m,sg
= m / 2 ;

n为偶数时,sg
= n / 2;

代码:

#include <stdio.h>
#define sc scanf
int main()
{
int i,x,n,cas=0,T,sum;

sc("%d",&T);
while(T--)
{
sum=0;
sc("%d",&n);
for(i=0;i<n;++i)
{
sc("%d",&x);

while(x&1) x/=2;

sum^=x/2;
}
printf("Case %d: ",++cas);
puts(sum?"Alice":"Bob");

}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: