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;
}

原文地址:https://www.cnblogs.com/forgood/p/2210786.html