测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A16848. Monotone Monochrome Matrices (Medium Version)

编程题 省选/NOI-
知识点

题目描述

这是本问题的中等难度版本。不同版本之间的区别在于本版本中 $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" 都会被认为是正确的正面回答。

输入输出样例

输入 #1
2
3 9
2 2
3 3
2 3
3 1
3 2
1 1
1 2
2 1
1 3
5 17
2 1
4 5
4 1
3 3
3 1
3 5
1 3
1 5
1 1
5 3
5 5
5 1
1 4
5 2
5 4
1 2
2 5
输出 #1
YES
NO
YES
NO
YES
NO
NO
YES
YES
YES
NO
YES
NO
NO
YES
NO
NO
YES
NO
NO
YES
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} $$

对于不是单调矩阵的操作,红色标记的四个格子就是违反上述条件的位置。
上一题 去做题 下一题