题意: 两个人取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;
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2021-09-09
  • 2021-12-07
  • 2021-06-12
  • 2022-12-23
  • 2021-08-17
猜你喜欢
  • 2021-11-16
  • 2021-12-23
  • 2021-07-22
相关资源
相似解决方案