NC15065 小牛vs小客

题目链接

题目

题目描述

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

输入描述

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

输出描述

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

示例1

输入

2
3

输出

XiaoNiu
XiaoKe

题解

知识点:博弈论。

\(n\leq 2\) 时,先手必胜。

否则,后手在对称位置取和先手相同的即可。

时间复杂度 \(O(1)\)

空间复杂度 \(O(1)\)

代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main() {
    std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int n;
    while (cin >> n) cout << (n <= 2 ? "XiaoNiu" : "XiaoKe") << '\n';
    return 0;
}
posted @ 2023-08-27 23:52  空白菌  阅读(10)  评论(0编辑  收藏  举报