题目描述
漫长的生命总是无聊的。这天,小红和紫准备玩一个染色游戏。她们拿出了一个有 n∗m n*m\ n∗m 个格子的网格,每个格子只能被染成红色或紫色。每个人可以任意选择一个格子染成红色和紫色,两人轮流进行染色。她们约定,不能有两个相邻的格子有相同的颜色。最后无法进行染色的人判输。小红先手进行染色。小红想知道,双方都采用最优策略的情况下,她能否取得胜利?
输入描述:
两个正整数n 和 m,用空格隔开。(1≤n,m≤10^9)
输出描述:
如果红获胜,则输出一个字符串"akai"
如果紫获胜,则输出一个字符串"yukari"
示例1
输入
1 1
输出
akai
说明
小红直接把这个格子染成红色,即可获胜
示例2
输入
1 2
输出
yukari
说明
小红染色后,紫只需要在相邻的格子染上不同的颜色即可获胜
解题思路:
根据题意,我们可以理解为在染色过程中,无论如何染色,最终结果都是固定的,所以我们假设小红和小紫的染色方法是按照顺序一排一排的进行染色,那么在染色过程中主要会分为四种情况,分别是行列为奇数和偶数的两两组合。若行和列都是奇数,那么总网格数就是奇数,则表明在X个回合后,在X+1的回合,小红会先染色完成,小紫就会没有空间进行染色,从而输掉比赛;而在其他情况下,总网格数均为偶数,则小红会先没有空间进行染色,从而输掉比赛,所以我们只需要判断行列的奇偶情况就可以得到谁会获胜。
代码:
#include<iostream>
using namespace std;
int main()
{
int n,m; //设置行列
cin>>n>>m;
if(n%2==1 && m%2==1)
{
cout<<"akai"<<endl;
}
else
cout<<"yukari"<<endl;
system("pause");
return 0;
}