题目传送门
题目大意
1、 总共n张牌;
2、 双方轮流抓牌;
3、 每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16…)
4、 抓完牌,胜负结果也出来了:最后抓完牌的人为胜者;
Kiki先手,Cici后手
思路
当一个人面临3的倍数的局势时必败,因为他无法取完,而另外一个人可以取完或者构造一个新的3的倍数局势给这个人
所以算是巴什博奕,判断对3取模的情况即可
AC Code
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<math.h>
using namespace std;
#define endl '\n'
#define INF 0x3f3f3f3f
// #define int long long
#define debug(a) cout<<#a<<"="<<a<<endl;
typedef long long ll;
const double PI=acos(-1.0);
const double e=exp(1.0);
const int M=1e9+7;
const int N=2e5+7;
inline int mymax(int x,int y){return x>y?x:y;}
inline int mymin(int x,int y){return x<y?x:y;}
void solve(){
int n;
while(~scanf("%d", &n)){
if(n%3==0) cout<<"Cici"<<endl;
else cout<<"Kiki"<<endl;
}
return ;
}
signed main(){
solve();
return 0;
}