棋盘格子总数为奇数,一定无解。假设有
3
x
3
3x3
3x3的棋盘,总的格子数目为奇数
9
9
9。对棋盘中的格子染色,如果其坐标
i
+
j
i + j
i+j为奇数,则不染色,否色染色,如下图。那么从
(
0
,
0
)
(0,0)
(0,0)出发又回到
(
0
,
0
)
(0,0)
(0,0),则有路径
偶数格子
→
奇数格子
→
偶数格子
→
奇数格子
→
偶数格子
→
奇数格子
→
偶数格子
偶数格子 → 奇数格子 → 偶数格子 → 奇数格子 → 偶数格子 → 奇数格子 → 偶数格子
偶数格子→奇数格子→偶数格子→奇数格子→偶数格子→奇数格子→偶数格子因为从偶数格子
(
0
,
0
)
(0,0)
(0,0)出发要回到偶数格子,一定要保证它有有偶数个格子才行,所以总共格子数目为奇数的时候一定无解。
棋盘格子总数为偶数的时候,不一定有解,比如只有一行或者一列的时候,就无解。但是当 n × m n \times m n×m为偶数并且 n > 1 、 m > 1 n > 1、m > 1 n>1、m>1时,一定有解。
#include
using namespace std;
int main() {
int n, m;
while (cin >> n >> m) {
if (n == 1 && m == 1) puts("Y");
else if (n % 2 && m % 2) puts("N");
else if (n == 1 || m == 1) puts("N");
else puts("Y");
}
return 0;
}