AT_tupc2024_h 12 Grid
题目描述
有一个 $N \times N$ 的网格。将自上而下第 $i$ 行、自左而右第 $j$ 列的格子记为格子 $(i,j)$。
另外,给出 $M$ 个 $4$ 元组 $(t_k,i_k,j_k,d_k)\; (k=1,2,\dots,M)$。$(t,i,j,d)$ 满足以下条件:
- $t$ 是 $0$ 或 $1$。
- 若 $t=0$,则 $1 \leq i \leq N-1, 1 \leq j \leq N$。
- 若 $t=1$,则 $1 \leq i \leq N, 1 \leq j \leq N-1$。
- $d$ 是 $1$ 或 $2$。
请判断是否存在一种向网格每个格子中填写整数的方法,使得以下所有条件都成立:
- 每个格子填写的整数为 $0$ 到 $10^9$ 之间的整数。
- 上下左右相邻两个格子中填写的整数的差的绝对值为 $1$ 或 $2$。
- 对于每个 $k=1,2,\dots, M$,满足:
- 若 $t_k=0$,则格子 $(i_k,j_k)$ 与 $(i_k+1,j_k)$ 中整数的差的绝对值为 $d_k$;
- 若 $t_k=1$,则格子 $(i_k,j_k)$ 与 $(i_k,j_k+1)$ 中整数的差的绝对值为 $d_k$。
如果存在,请给出一个满足条件的填写方案。
输入格式
输入按以下格式从标准输入读入。
> $N$ $M$ $t_1$ $i_1$ $j_1$ $d_1$ $t_2$ $i_2$ $j_2$ $d_2$ $\vdots$ $t_M$ $i_M$ $j_M$ $d_M$
输出格式
如果不存在任何满足条件的填写方法,请输出 `No`。
如果存在,请输出 $N+1$ 行。第 $1$ 行输出 `Yes`。第 $i+1$ $(i=1,2,\dots,N)$ 行依次输出格子 $(i,1),(i,2),\dots,(i,N)$ 填写的整数,空格分隔。
如果有多组答案,输出任意一组都可以。
说明/提示
### 样例解释 1
除此之外,
```
Yes
5 4
3 2
```
等方案也都是正确答案。
### 样例解释 2
除此之外,
```
Yes
0 2
2 1
```
等方案也都是正确答案。
### 样例解释 3
不存在满足条件的填写方法。
### 数据范围
- $1 \leq N \leq 1000$
- $0 \leq M \leq \min\{2 \times 10^5,2N(N-1)\}$
- $(t_k,i_k,j_k,d_k)$ 均满足题目条件
- 若 $k \neq \ell$,则 $(t_k,i_k,j_k) \neq (t_\ell,i_\ell,j_\ell)$
- 所有输入均为整数。
由 ChatGPT 5 翻译