NxM 棋盘游戏:小红必胜策略 - Python 代码实现

这是一款经典的两人棋盘游戏,小红和朋友在 NxM 棋盘上移动棋子。棋子初始位置在 (1, 1),每次可以向上或者向右移动奇数单位,不能移动到棋盘外面,无法行动就输了。小红先手,请问小红能否必胜?

规则分析

对于每一组数据,我们可以观察到以下规律:

  1. 当 n 和 m 中至少有一个为奇数时,小红必胜。这是因为无论小红怎么移动,小红始终可以将棋子移动到一个奇数行或奇数列的位置,而朋友无法继续移动。

  2. 当 n 和 m 均为偶数时,小红必输。这是因为无论小红怎么移动,朋友始终可以将棋子移动到一个奇数行或奇数列的位置,而小红无法继续移动。

Python 代码实现

因此,我们只需要判断每组数据的 n 和 m 是否满足以上条件即可确定小红是否必胜。具体实现如下:

t = int(input())  # 输入t的值

for _ in range(t):
    n, m = map(int, input().split())  # 输入n和m的值
    
    if n % 2 == 1 or m % 2 == 1:  # 判断是否满足条件1
        print('Yes')
    else:  # 不满足条件1时,必然满足条件2
        print('No')

时间复杂度分析

对于每组数据,我们只需要进行一次判断,因此时间复杂度为 O(t)。

NxM 棋盘游戏:小红必胜策略 - Python 代码实现

原文地址: http://www.cveoy.top/t/topic/mu2w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录