C. C. Blog

Security Research, Algorithm and Data Structure

51Nod 1605 棋盘问题

Problem

上帝创造了一个n*m棋盘,每一个格子都只有可能是黑色或者白色的。

亚当和夏娃在玩一个游戏,每次寻找边长为x的正方形,其中每个格子必须为黑色,然后将这些格子染白。

如果谁不能操作了,那么那个人就输了。

亚当喜欢质数。

夏娃喜欢1,但讨厌2。

因此他们规定,x只有可能是非2质数或者是1。

现在他们想知道,如果他们都用最优策略进行游戏,谁会赢。

上帝规定亚当先手。

样例解释:

这里x只有可能是1,因此经过3次操作后,夏娃无法操作,亚当胜。

Solution

由于每次只能染色奇数个,只需要判断黑色的棋子有奇数还是偶数个即可。

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
int T,n,m,sum,x;
int a[120][120];
int main(){
scanf("%d",&T);
while(T--){
sum=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n*m;i++){
scanf("%d",&x);
if(x==1) sum++;
}
if(sum%2){
printf("yadang\n");
}
else{
printf("xiawa\n");
}
}
return 0;
}
  • 本文作者: CCWUCMCTS
  • 本文链接: https://ccwucmcts.github.io/posts/10846/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!