CF2201F1 Monotone Monochrome Matrices (Medium Version)
题目描述
这是本问题的中等难度版本。不同版本之间的区别在于本版本中 $n$ 和 $q$ 的约束更大。只有你解决了本问题的所有版本后,才能进行 hack。
一个大小为 $n \times n$ 的单色矩阵是指有 $n$ 行 $n$ 列,每个格子要么是黑色,要么是白色的矩阵。我们用 $C[r,c]$ 表示单色矩阵 $C$ 中第 $r$ 行第 $c$ 列格子的颜色。
如果满足下述条件,我们称该矩阵 $C$ 为单调矩阵(monotone):
- 不存在满足如下三个条件的两行 $1 \le i < j \le n$ 和两列 $1 \le k < l \le n$:
- $C[i,k] = C[j,l]$;
- $C[j,k] = C[i,l]$;
- $C[i,k] \neq C[j,k]$。
现有一个 $n \times n$ 的单色矩阵 $M$,初始时所有格子都是白色。请你回答 $q$ 个如下形式的操作:
- $r\;c$:将矩阵 $M$ 的第 $r$ 行第 $c$ 列的格子染成黑色。然后,判断 $M$ 是否为单调矩阵。
保证每次操作前 $(r,c)$ 位置的格子都是白色。
注意,操作具有持久性。也就是说,一次操作后的颜色会影响后续操作。
输入格式
每个测试点包含多个测试用例。第一行包含整数 $t$($1 \le t \le 10^3$),表示测试用例数。接下来是每个测试用例的内容。
每个测试用例的第一行包含两个整数 $n$ 和 $q$($2 \le n \le 200\,000$,$1 \le q \le \min(n^2,200\,000)$)。
接下来 $q$ 行,每行包含两个整数 $r_i$, $c_i$,表示第 $i$ 次操作($1 \le r_i,c_i \le n$)。
保证每次操作前 $(r_i, c_i)$ 位置的格子都是白色。
保证所有测试用例中 $n$ 的总和不超过 $200\,000$。
保证所有测试用例中 $q$ 的总和不超过 $200\,000$。
输出格式
对于每次操作,如果当前的 $M$ 是单调矩阵,输出 "YES";否则输出 "NO"。每个答案占一行,大小写不限,例如 "yEs"、"yes"、"Yes" 都会被认为是正确的正面回答。
说明/提示
在第一个测试用例中,$M$ 的大小是 $3 \times 3$。每次操作后 $M$ 的状态如下图所示:
$$
\quad\, \begin{bmatrix} \square & \square & \square\\ \square & \blacksquare & \square\\ \square & \square & \square \end{bmatrix} \to \begin{bmatrix} \square & \square & \square\\ \square & \color{red}{\blacksquare} & \color{red}{\square}\\ \square & \color{red}{\square} & \color{red}{\blacksquare} \end{bmatrix} \to \begin{bmatrix} \square & \square & \square\\ \square & \blacksquare & \blacksquare\\ \square & \square & \blacksquare \end{bmatrix} \\\to \begin{bmatrix} \square & \square & \square\\ \color{red}{\square} & \color{red}{\blacksquare} & \blacksquare\\ \color{red}{\blacksquare} & \color{red}{\square} & \blacksquare \end{bmatrix} \to \begin{bmatrix} \square & \square & \square\\ \square & \blacksquare & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix} \to \begin{bmatrix} \color{red}{\blacksquare} & \color{red}{\square} & \square\\ \color{red}{\square} & \color{red}{\blacksquare} & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix} \\\to \begin{bmatrix} \color{red}{\blacksquare} & \blacksquare & \color{red}{\square}\\ \color{red}{\square} & \blacksquare & \color{red}{\blacksquare}\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix} \to \begin{bmatrix} \blacksquare & \blacksquare & \square\\ \blacksquare & \blacksquare & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix} \to \begin{bmatrix} \blacksquare & \blacksquare & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare\\ \blacksquare & \blacksquare & \blacksquare \end{bmatrix}
$$
对于不是单调矩阵的操作,红色标记的四个格子就是违反上述条件的位置。
由 ChatGPT 5 翻译