1 3
Kiki Cici
ACM Short Term Exam_2007/12/13
ps:最近智商很低、、、
这题可以找规律,就是说当n%3==0时必败态,也可以直接求sg的值
由于有一个小细节没看出来,造成、、、
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int f[10]={1},sg[1001],vis[1001];
int n;
int getsg()
{
memset(sg,0,sizeof(sg));
for(int i=1;i<=n;i++)
{
memset(vis,false,sizeof(vis));
for(int j=0;j<=10&&f[j]<=i;j++)
{
vis[sg[i-f[j]]]=true;
for(int j=0;;j++)
{
if(!vis[j])
{
sg[i]=j;break;
}
}
}
}
}
int main()
{
for(int i=1;i<=10;i++)
f[i]=2*f[i-1];
while(cin>>n&&n)
{
getsg();
if(sg[n])
puts("Kiki");
else
puts("Cici");
}
return 0;
}
Good Luck in CET-4 Everybody!(sg函数模板)
原文地址:http://blog.csdn.net/chaoyueziji123/article/details/43285425