CF2171C2 Renako Amaori and XOR Game 题解
Mr_RedStone · · 题解
思路
设序列
因此不管经过多少次操作,Tie。
代码
AC 记录
#include<bits/stdc++.h>
using namespace std;
const int NR=2e5+5;
int T,n;
int a[NR],b[NR];
int main(){
scanf("%d",&T);
while(T--){
scanf("%d",&n);
int sa=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sa^=a[i];
}
int sb=0;
for(int i=1;i<=n;i++){
scanf("%d",&b[i]);
sb^=b[i];
}
if(sa==sb){
printf("Tie\n");
continue;
}
int t=sa^sb;
int lcz=0;//取出最高位1在哪
while(t){
if(t-(t&-t)==0) lcz=__builtin_ffs(t)-1;
t-=t&-t;
}
int lst=0;
for(int i=1;i<=n;i++){
if((a[i]^b[i])&(1<<lcz)) lst=i;
}
if(lst&1) printf("Ajisai\n");
else printf("Mai\n");
}
return 0;
}