#AT2558. B - Same Map in the RPG World
B - Same Map in the RPG World
当前没有测试数据。
B - RGP世界中的相同地图
分数:200 分
问题描述
Takahashi正在开发一款RPG游戏。他决定编写一个代码来检查两个地图是否相等。
我们有网格 A 和 B,分别具有 H 行和 W 列。格子中的每个单元格上都有符号 #
或 .
。
网格 A 和 B 中第 i 行从顶部开始的第 j 列格子上的符号分别表示为 $A_{i, j}$ 和 $B_{i, j}$。
下面的两种操作分别称为垂直位移和水平位移。
- 对于每一个 $j=1, 2, \dots, W$,同时执行以下操作:
- 将 $A_{1,j}, A_{2,j}, \dots, A_{H-1, j}, A_{H,j}$ 替换为 $A_{2,j}, A_{3,j}, \dots, A_{H,j}, A_{1,j}$。
- 对于每一个 $i = 1, 2, \dots, H$,同时执行以下操作:
- 将 $A_{i,1}, A_{i,2}, \dots, A_{i,W-1}, A_{i,W}$ 替换为 $A_{i, 2}, A_{i, 3}, \dots, A_{i,W}, A_{i,1}$。
存在满足以下条件的非负整数对 $(s, t)$ 吗?如果存在,请输出Yes
,否则输出No
。
- 在应用了 $s$ 次垂直位移和 $t$ 次水平位移之后,$A$ 等于 $B$。
这里,如果对于所有满足 $1 \leq i \leq H$ 和 $1 \leq j \leq W$ 的整数对 $(i, j)$,有 $A_{i, j} = B_{i, j}$,则 $A$ 被认为等于 $B$。
约束条件
- $2 \leq H, W \leq 30$
- $A_{i,j}$ 和 $B_{i,j}$ 是
#
或.
- $H$ 和 $W$ 是整数。
输入
从标准输入中按以下格式给出输入:
输出
如果存在满足条件的整数对 $(s, t)$,输出Yes
,否则输出No
。
4 3
..#
...
.#.
...
#..
...
.#.
...
Yes
选择 $(s, t) = (2, 1)$,得到的 $A$ 等于 $B$。
当选择 $(s, t) = (2, 1)$ 时的步骤如下所示。初始时的 $A$ 如下:
首先进行一次垂直位移,使得 $A$ 如下:
``` ... .#. ... ..# ```然后进行另一次垂直位移,使得 $A$ 如下:
``` .#. ... ..# ... ```最后进行一次水平位移,使得 $A$ 如下,与 $B$ 相等。
``` #.. ... .#. ... ```3 2
##
##
#.
..
#.
#.
No
没有 $(s, t)$ 的选择使得 $A$ 等于 $B$。
4 5
#####
.#...
.##..
..##.
...##
#...#
#####
...#.
Yes
10 30
..........##########..........
..........####....###.....##..
.....##....##......##...#####.
....####...##..#####...##...##
...##..##..##......##..##....#
#.##....##....##...##..##.....
..##....##.##..#####...##...##
..###..###..............##.##.
.#..####..#..............###..
#..........##.................
................#..........##.
######....................####
....###.....##............####
.....##...#####......##....##.
.#####...##...##....####...##.
.....##..##....#...##..##..##.
##...##..##.....#.##....##....
.#####...##...##..##....##.##.
..........##.##...###..###....
...........###...#..####..#...
Yes