题意:n*m的棋盘,每次可以将x(x==1 || x是质数),如果x*x内都是1的话,将他们都变成0,问先手赢还是后手赢
题解:博弈,没有sg函数,刚开始想可能会和前后顺序有问题
有点儿想不到了
然后发现,x只能是1或者质数,所有x肯定是奇数,那x*x肯定也是奇数
如果当前有奇数个1,那么变后就有偶数个1
如果当前有偶数个1,那么变后就有奇数个1
所以,统计当前有多少个1就可以了
int main()
{
int t,x,y,a;
cin>>t;
while(t--){
cin>>x>>y;
int sum=0;
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
cin>>a;
if(a)
sum++;
}
}
if(sum&1) printf("yadang\n");
else printf("xiawa\n");
}
return 0;
}
然后就想到了一个很经典的问题,俄罗斯方块能不能永久的玩儿下去,答案是不能的, 详情戳这里