AT_abc277_f [ABC277F] Sorting a Matrix
题目描述
给定一个 $H$ 行 $W$ 列、元素为非负整数的矩阵 $A$。对于满足 $1 \leq i \leq H$ 且 $1 \leq j \leq W$ 的整数对 $(i, j)$,$A$ 的第 $i$ 行第 $j$ 列的元素记为 $A_{i, j}$。
对 $A$ 可以进行如下操作:
- 首先,将 $A$ 中所有为 $0$ 的元素分别替换为任意**正整数**(如果有多个 $0$,可以分别替换为不同的正整数)。
- 然后,可以任意次(也可以不进行)执行以下两种操作中的任意一种:
- 选择满足 $1 \leq i < j \leq H$ 的整数对 $(i, j)$,交换 $A$ 的第 $i$ 行和第 $j$ 行。
- 选择满足 $1 \leq i < j \leq W$ 的整数对 $(i, j)$,交换 $A$ 的第 $i$ 列和第 $j$ 列。
请判断是否可以通过上述操作,使得 $A$ 满足以下条件:
- $A_{1, 1} \leq A_{1, 2} \leq \cdots \leq A_{1, W} \leq A_{2, 1} \leq A_{2, 2} \leq \cdots \leq A_{2, W} \leq A_{3, 1} \leq \cdots \leq A_{H, 1} \leq A_{H, 2} \leq \cdots \leq A_{H, W}$
- 换句话说,对于任意满足 $1 \leq i, i' \leq H$ 且 $1 \leq j, j' \leq W$ 的两个整数对 $(i, j)$ 和 $(i', j')$,都满足以下两个条件:
- 如果 $i < i'$,则 $A_{i, j} \leq A_{i', j'}$。
- 如果 $i = i'$ 且 $j < j'$,则 $A_{i, j} \leq A_{i', j'}$。
输入格式
输入按以下格式从标准输入读入。
> $H$ $W$ $A_{1, 1}$ $A_{1, 2}$ $\ldots$ $A_{1, W}$ $A_{2, 1}$ $A_{2, 2}$ $\ldots$ $A_{2, W}$ $\vdots$ $A_{H, 1}$ $A_{H, 2}$ $\ldots$ $A_{H, W}$
输出格式
如果可以使 $A$ 满足题目中的条件,则输出 `Yes`,否则输出 `No`。
说明/提示
## 限制
- $2 \leq H, W$
- $H \times W \leq 10^6$
- $0 \leq A_{i, j} \leq H \times W$
- 输入均为整数
## 样例解释 1
可以通过如下步骤操作,使 $A$ 满足题目中的条件,因此输出 `Yes`。
- 首先,将 $A$ 中的 $0$ 元素替换如下:
```
9 6 8
5 4 4
3 1 3
```
- 交换第 2 列和第 3 列,结果如下:
```
9 8 6
5 4 4
3 3 1
```
- 交换第 1 行和第 3 行,结果如下:
```
3 3 1
5 4 4
9 8 6
```
- 交换第 1 列和第 3 列,结果如下,满足题目条件:
```
1 3 3
4 4 5
6 8 9
```
## 样例解释 2
无论如何操作,都无法使 $A$ 满足题目中的条件,因此输出 `No`。
由 ChatGPT 4.1 翻译