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 翻译