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;
}