题目链接:
https://icpc.njust.edu.cn/Contest/749/H/
思路:
就是Nim游戏里面的一种情况,最后取的那个人输。这种情况下是需要考虑孤立堆的情况,就是全部都是1的时候。其他情况就是按照异或值是否为0判断。
另一种情况是最后取的那个人赢,直接判断异或值即可。
代码:
#include<stdio.h>
#include<string.h>
int main()
{
int T,i,j,k,n,a[1005],f;
scanf("%d",&T);
while(T--)
{
f=0;
scanf("%d",&n);
int sum=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]==1)f++;
sum=sum^a[i];
}
if(f<n)
{
if(sum>0)printf("Yamato_Saikou!\n");
else printf("Meidikeji_Shijiediyi!\n");
}
else
{
if(n%2)printf("Meidikeji_Shijiediyi!\n");
else printf("Yamato_Saikou!\n");
}
}
}