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