AT_arc095_c [ARC095E] Symmetric Grid
题目描述
有一个 $H$ 行 $W$ 列的网格,每个格子里写有一个小写英文字母。具体来说,从上往下第 $i$ 行,从左往右第 $j$ 列的格子中写的字母等于字符串 $S_i$ 的第 $j$ 个字符。
すぬけ君可以对这个网格进行任意次数如下操作:
- 选择两行并交换它们的位置,或者选择两列并交换它们的位置。
すぬけ君希望使这个网格变为点对称。也就是说,对于任意的 $1 \leq i \leq H$,$1 \leq j \leq W$,从上往下第 $i$ 行、从左往右第 $j$ 列的格子中的字母,和从上往下第 $H+1-i$ 行、从左往右第 $W+1-j$ 列的格子中的字母相同。
请判断すぬけ君是否有可能通过上述操作实现目标。
输入格式
输入通过标准输入给出,格式如下:
> $H$ $W$
> $S_1$
> $S_2$
> $\vdots$
> $S_H$
输出格式
如果可以使网格变为点对称,输出 `YES`;否则输出 `NO`。
说明/提示
## 限制
- $1 \leq H \leq 12$
- $1 \leq W \leq 12$
- $|S_i| = W$
- $S_i$ 只包含小写英文字母
## 样例解释 1
如下面的图片所示,将第 2 列和第 3 列交换后,网格可以变为点对称。

由 ChatGPT 4.1 翻译