HDU 1847 Good Luck in CET-4 Everybody!

题意: 两个人取n个数,每次能取2的幂个数,不能操作的输,问先手必胜或必败

注意到n很小,SG函数可以暴力推出来

推出来发现有n%3的规律

#include<bits/stdc++.h>

using namespace std;

const int MAXN = 1005;

int sg[MAXN];
int vis[MAXN],dfn;

int main(){
  for(int i=1;i<=1000;i++){
    ++dfn;
    for(int j=1;i-j>=0;j*=2){
      vis[sg[i-j]]=dfn;
    }
    for(int j=0;;j++){
      if(vis[j]!=dfn){
        sg[i]=j;
        break;
      }
    }
  }
  int x;
  while(cin>>x){
    if(sg[x]) puts("Kiki");
    else puts("Cici");
  }
  return 0;
}
posted @ 2021-08-11 11:41  GhostCai  阅读(45)  评论(0编辑  收藏  举报