D

问题背景:

小红和小紫在一个 2×2 的矩阵上进行博弈游戏。 游戏规则是两人轮流操作,每次选择两个相邻的正整数同时减 1,谁先无法操作谁就输。 小红先手操作,需要在两人都使用最优策略的情况下确定谁将获得最终胜利。 输入输出:

输入包括询问次数 t t,以及接下来的 2 × t 2×t 行,每行两个整数代表一次询问的初始矩阵元素。 输出为“kou”表示小红获胜,“yukari”表示小紫获胜。

分析:有题我们可以知道 a11和a14不可能同时减少,a12和a21不可能同时减少,我们令x=a11+a24,y=a12+a21; 我们可以知道,每次操作都会让x和y减少1,那么我们令z为min(x,y) 判断z是否是2的倍数,如果是,则后手获胜,否则就是先手获胜

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+10;
int n,m,a[100][100],b[N];

signed main()
{
    cin>>n;
    while(n--)
    {
        int aa=0;int bb=0;
        for(int i=1;i<=2;i++)
        {
            for(int j=1;j<=2;j++)
            {
                cin>>a[i][j];
                if((i+j)%2==0)
                    aa+=a[i][j];
                else bb+=a[i][j];
            }
        }
        int mi=min(aa,bb);
        if(mi%2==0)
        {
            cout<<"yukari"<<endl;;
        }
        else cout<<"kou"<<endl;
    }
    return 0;
}