AT_arc203_e [ARC203E] Tile Grid with One Hole

题目描述

有一个高 $H$ 行、宽 $W$ 列的网格,我们用 $(i,j)$ 表示从上往下第 $i$ 行、从左往右第 $j$ 列的格子。网格中只有 $(r,c)$ 这个格子有一个洞。你需要用若干块瓷砖将剩下的所有没有洞的格子完全覆盖。给定非负整数 $N$、$M$,满足 $H \times W = L \times (N+M) + 1$。 横向 $1$ 行、纵向 $L$ 列的瓷砖称为横向瓷砖,纵向 $L$ 行、横向 $1$ 列的瓷砖称为纵向瓷砖。 请判断是否存在一种不旋转瓷砖的铺法,恰好用 $N$ 块横向瓷砖和 $M$ 块纵向瓷砖将所有非洞格子铺满。如果存在,请给出一种铺法。 关于输出方式及更严格的条件,请参见输出格式部分。 对于每个输入文件,需要解答 $T$ 个测试用例。

输入格式

输入通过标准输入给出,格式如下: > $T$ > $case_1$ > $case_2$ > $\vdots$ > $case_T$ 每个测试用例的格式如下: > $H$ $W$ $L$ $N$ $M$ $r$ $c$

输出格式

请按如下格式输出答案: > $output_1$ > $output_2$ > $\vdots$ > $output_T$ 其中,$output_t$ 表示第 $t$ 个测试用例的输出。 对于每个测试用例,如果存在满足条件的铺法,设第 $i$ 块横向瓷砖最左边覆盖的格子为 $(A_i,B_i)$,第 $j$ 块纵向瓷砖最上边覆盖的格子为 $(C_j,D_j)$,请按如下格式输出: > Yes $A_1$ $B_1$ $A_2$ $B_2$ $\cdots$ $A_N$ $B_N$ $C_1$ $D_1$ $C_2$ $D_2$ $\cdots$ $C_M$ $D_M$ 更严格地说,请输出满足以下所有条件的整数序列 $A=(A_1,A_2,\dots,A_N)$、$B=(B_1,B_2,\dots,B_N)$、$C=(C_1,C_2,\dots,C_M)$、$D=(D_1,D_2,\dots,D_M)$: - $\{(A_i,B_i+l)\mid i=1,2,\dots,N,\;l=0,1,\dots,L-1\}$ 与 $\{(C_j+l,D_j)\mid j=1,2,\dots,M,\;l=0,1,\dots,L-1\}$ 以及 $\{(r,c)\}$ 的并集,恰好等于 $\{(h,w)\mid h=1,2,\dots,H,\;w=1,2,\dots,W\}$。 由于有 $H \times W = L \times (N+M) + 1$ 这个约束,如果满足上述条件,瓷砖之间不会重叠。 如果无法满足条件,请输出 `No`。

说明/提示

### 限制条件 - $1 \leq T \leq 5$ - $1 \leq H \leq 1000$ - $1 \leq W \leq 1000$ - $2 \leq H \times W$ - $2 \leq L \leq 1000$ - $0 \leq N$ - $0 \leq M$ - $1 \leq r \leq H$ - $1 \leq c \leq W$ - $H \times W = L \times (N+M) + 1$ - 所有测试用例中 $N+M$ 的总和不超过 $6 \times 10^5$ - 输入的所有数均为整数 ### 样例说明 1 在第 3 个测试用例中,最左上角的格子有一个洞。可以如下铺设瓷砖: ``` ┌─┬─┐ ┌─┤ │ │ │ │ ├─┴─┤ └─┴───┘ ``` 由 ChatGPT 4.1 翻译