NC223888 红色和紫色.md

发布时间 2023-08-27 20:56:44作者: 空白菌

题目链接

题目

题目描述

漫长的生命总是无聊的。这天,小红和紫准备玩一个染色游戏。
她们拿出了一个有 \(n*m\) 个格子的网格,每个格子只能被染成红色或紫色。每个人可以任意选择一个格子染成红色和紫色,两人轮流进行染色。
她们约定,不能有两个相邻的格子有相同的颜色。最后无法进行染色的人判输。
小红先手进行染色。小红想知道,双方都采用最优策略的情况下,她能否取得胜利?

输入描述

两个正整数 \(n\)\(m\) ,用空格隔开。
\((1\leq n, m \leq 10^9)\)

输出描述

如果小红获胜,则输出一个字符串"akai"
如果紫获胜,则输出一个字符串"yukari"

示例1

输入

1 1

输出

akai

说明

小红直接把这个格子染成红色,即可获胜

示例2

输入

1 2

输出

yukari

说明

小红染色后,紫只需要在相邻的格子染上不同的颜色即可获胜

题解

知识点:博弈论。

当且仅当 \(n,m\) 都为奇数时,小红可以占据中心位置,之后和小紫采取位置中心对称且颜色相同的染色即可获胜。否则,小紫采取这个策略会获胜。

时间复杂度 \(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, m;
    cin >> n >> m;
    if ((n & 1) && (m & 1)) cout << "akai" << '\n';
    else cout << "yukari" << '\n';
    return 0;
}