标签:main 忘记 else scan display 复习 input color div
Input输入数据包含多个测试用例,每个测试用例占一行,包含一个整数n(1<=n<=1000)。Output如果Kiki能赢的话,请输出“Kiki”,否则请输出“Cici”,每个实例的输出占一行。
Sample Input
1 3
Sample Output
Kiki Cici
题解:
每次只能取2的次幂,用求sg函数即可,
参考代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int n,arr[15],sg[1010]; 5 int mex(int x) 6 { 7 if(sg[x]!=-1) return sg[x]; 8 bool vis[1010]; 9 memset(vis,0,sizeof vis); 10 for(int i=0;arr[i]<=x;++i) 11 { 12 int temp=x-arr[i]; 13 //if(temp<0) break; 14 sg[temp]=mex(temp); 15 vis[sg[temp]]=1; 16 } 17 for(int i=0;;++i) if(!vis[i]){sg[x]=i;break;} 18 return sg[x]; 19 } 20 int main() 21 { 22 arr[0]=1; 23 for(int i=1;i<=10;++i) arr[i]=arr[i-1]*2; 24 while(~scanf("%d",&n)) 25 { 26 memset(sg,-1,sizeof sg); 27 if(mex(n)) puts("Kiki"); 28 else puts("Cici"); 29 } 30 31 return 0; 32 }
HDU1847 Good Luck In CET4 Everybody
标签:main 忘记 else scan display 复习 input color div
原文地址:https://www.cnblogs.com/songorz/p/10331486.html