1049 小牛vs小客 博弈论-对称

链接:https://ac.nowcoder.com/acm/contest/26656/1049
来源:牛客网

题目描述

小牛和小客玩石子游戏,他们用n个石子围成一圈,小牛和小客分别从其中取石子,谁先取完谁胜,每次可以从一圈中取一个或者相邻两个,每次都是小牛先取,请输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)(1 2 3 4 取走 2 13 不算相邻)


输入描述:

输入包括多组测试数据
每组测试数据一个n(1≤n≤1e9)

输出描述:

每组用一行输出胜利者的名字(小牛获胜输出XiaoNiu,小客获胜输出XiaoKe)
示例1

输入

复制
2
3

输出

复制
XiaoNiu
XiaoKe

 

分析

博弈论经典题,考虑对称性,当n >= 3 的时候,后手只要和先手对称就可以了。

奇数的时候也可以对称,可以考虑 3 和 5

//-------------------------代码----------------------------

//#define int ll
const int N = 1e5+10;
int n,m;

void solve()
{
    while(cin>>n) {
        if(n < 3) {
            cout<<"XiaoNiu"<<endl;
        } else {
            cout<<"XiaoKe"<<endl;
        }        
    }
}

signed main(){
    clapping();TLE;

//    int t;cin>>t;while(t -- )
    solve();
//    {solve(); }
    return 0;
}

/*样例区


*/

//------------------------------------------------------------

 

posted @ 2022-07-30 22:03  er007  阅读(49)  评论(0编辑  收藏  举报