hdu 1847 还是不知道sg,不过暴力出各个状态

 

#include<iostream>
using namespace std;
int s[11]={1,2,4,8,16,32,64,128,256,512,1024};
int f[1010];

int main()
{
 int i,j;
 memset(f,-1,sizeof(f));
 for(i=1;i<=1000;i++)
 {
  int flag=0;
  for(j=0;j<=10;j++)
  {
   int tmp=i-s[j];
   if(tmp<0) break;
   if(tmp==0||f[tmp]==0)////若后继状态有0值,但当前态为1;
   {
    flag=1;
    f[i]=1;
    break;
   }
  }
  if(!flag)/////////////若后继状态全为1,当前态为0;
   f[i]=0;
 }
 while(scanf("%d",&i)!=EOF)
  if(f[i]) printf("Kiki\n");
  else printf("Cici\n");
 return 0;
}

posted @ 2011-10-13 21:06  forgood  阅读(84)  评论(0编辑  收藏  举报