OJ目前支持C/C++、Java、Pascal语言。
问题 G: KACA的二子棋
题目描述
正在下五子棋的KACA突发奇想,能不能创造一种二子棋。
很明显如果和五子棋一样是二字连珠便算赢,那么先手便可以获胜。所以KACA便设计,不允许二子连珠,因为棋盘是有限的,所以哪一方没办法下子便判为输。
如图,若在中间落子,则周围都不可以再落子了
(因为必然连成两个)。
于是KACA便以这个规则与PIPA对弈,然而他发现游戏的胜负似乎与是否先手有关系,所以他想要更深一步研究一下。
输入
多组测试数据。
每一组有一行,为两个以空格隔开的数字n,m(0<n,m<100)分别代表棋盘的行数和列数。
输出
对于每一组数据,在两方都不失误的情况下,若后手方输,则输出“Bwin”,若先手方输,则输出“Ewin”。
样例输入
1 1
1 2
样例输出
Bwin
Ewin
规律题特征:
第一步: 代码一般不长,但是规律较为难找,一步步从1,2,3,,,n,慢慢模拟即可,听天由命;
第二步: 对2,3要特别敏感,logn,2的n次方,奇偶,,,,,
本题思路:规律是当n*m>1 时,谁先手谁输,n*m=1 时,先手赢;
#include<stdio.h>
int main()
{
int m,n;
while(scanf("%d %d",&m,&n)!=EOF)
{
if(m*n==1)
printf("Bwin\n");
else printf("Ewin\n");
}
return 0;
}