AT_tupc2023_d Shift Puzzle

题目描述

给定两个 $N\times N$ 的方格,分别为 $S$ 和 $T$,每个格子被染成黑色或白色。每个方格的状态用 $N^2$ 个字符来表示,对于 $S$ 来说,第 $x$ 行第 $y$ 列的格子如果是黑色,$S_{x,y}$ 为 `#`,如果是白色,$S_{x,y}$ 为 `.`,$T$ 的定义方式同理。 你可以对方格 $S$ 进行如下操作: - 选择整数 $t,x$($1\leq t\leq 2,1\leq x\leq N$)。 - 当 $t=1$ 时,将 $S$ 第 $x$ 行的所有格子的颜色向右循环平移 $1$ 格。即 $S_{x,1}S_{x,2}\ldots S_{x,N}$ 变为 $S_{x,N}S_{x,1}\ldots S_{x,N-1}$。 - 当 $t=2$ 时,将 $S$ 第 $x$ 列的所有格子的颜色向下循环平移 $1$ 格。即 $S_{1,x}S_{2,x}\ldots S_{N,x}$ 变为 $S_{N,x}S_{1,x}\ldots S_{N-1,x}$。 你需要判断,是否可以用不超过 $N^3$ 次操作将 $S$ 变换为 $T$,如果可以,输出一种操作方案。

输入格式

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

输出格式

如果无法通过不超过 $N^3$ 次操作使两个方格一致,输出: ``` No ``` 如果可以,输出以下格式的操作方案: > Yes > $M$ > $t_1$ $x_1$ > $\vdots$ > $t_M$ $x_M$ 其中 $M$ 为操作次数,$t_i,x_i$ 为第 $i$ 次操作的选取,每组数据应满足: - $0\leq M\leq N^3$ - $1\leq t_i\leq 2$ - $1\leq x_i\leq N$

说明/提示

### 部分分 对于满足附加限制 $N\leq 4$ 的测试数据,得分为 $10$ 分。 ### 样例说明 1 $S$ 会按如下方式变化: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_tupc2023_d/55ccacf19aff9c58953fa0d42bfcd7ecb77dbac8d8081a2f7b3635fae0b9741a.png) ### 样例说明 2 一次操作都不需要。 # 数据范围 - $2 \leq N \leq 80$ - $S_{x,y}$、$T_{x,y}$ 均为 `#` 或 `.` - $N$ 为整数。 由 ChatGPT 5 翻译