AT_abc218_c [ABC218C] Shapes

题目描述

在一个二维网格上有两个图形 $S$ 和 $T$。网格由正方形格子组成。 $S$ 位于 $N$ 行 $N$ 列的网格中,由所有 $S_{i,j}$ 为 `#` 的格子组成。 $T$ 也位于 $N$ 行 $N$ 列的网格中,由所有 $T_{i,j}$ 为 `#` 的格子组成。 请判断是否可以通过若干次 $90$ 度旋转和平移操作,使 $S$ 与 $T$ 完全重合。

输入格式

输入以如下格式从标准输入读入。 > $N$ > $S_{1,1}S_{1,2}\ldots S_{1,N}$ > $\vdots$ > $S_{N,1}S_{N,2}\ldots S_{N,N}$ > $T_{1,1}T_{1,2}\ldots T_{1,N}$ > $\vdots$ > $T_{N,1}T_{N,2}\ldots T_{N,N}$

输出格式

如果可以通过若干次 $90$ 度旋转和平移操作使 $S$ 与 $T$ 完全重合,输出 `Yes`,否则输出 `No`。

说明/提示

## 限制条件 - $1 \leq N \leq 200$ - $S,T$ 仅由 `#` 和 `.` 组成 - $S,T$ 至少各包含一个 `#` ## 样例解释 1 可以将 $S$ 逆时针旋转 $90$ 度并平移,使其与 $T$ 完全重合。 ## 样例解释 2 无法通过若干次 $90$ 度旋转和平移操作使两者重合。 ## 样例解释 3 $S$ 和 $T$ 不一定是连通的。 ## 样例解释 4 请注意,旋转和平移操作是针对整个 $S,T$ 进行的,而不是针对每个连通分量分别操作。 由 ChatGPT 4.1 翻译