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;
}
本文来自博客园,作者:GhostCai,转载请注明原文链接:https://www.cnblogs.com/ghostcai/p/15127545.html