AT_abc420_e [ABC420E] Reachability Query

题目描述

给定一个有 $N$ 个顶点且没有边的无向图。 顶点编号为 $1,2,\dots,N$,初始时所有顶点均为白色。 你需要处理共 $Q$ 个如下三种类型的操作: - 类型 $1$:在顶点 $u$ 和 $v$ 之间添加一条无向边。 - 类型 $2$:如果顶点 $v$ 是白色,则将其变为黑色;如果是黑色,则将其变为白色。 - 类型 $3$:判断从顶点 $v$ 出发,经过若干条边(可以为零条)是否能够到达某个黑色顶点;如果可以,输出 `Yes`,否则输出 `No`。

输入格式

输入由标准输入给出,格式如下: > $N$ $Q$ > $\rm{Query}_1$ > $\rm{Query}_2$ > $\vdots$ > $\rm{Query}_Q$ 其中 $\rm{Query}_i$ 表示第 $i$ 个操作。 类型 $1$ 操作格式如下: > 1 $u$ $v$ 类型 $2$ 操作格式如下: > 2 $v$ 类型 $3$ 操作格式如下: > 3 $v$

输出格式

对于每个类型 $3$ 的操作,输出如下结果: - 如果从顶点 $v$ 出发经过若干条边(可以为零条)能够到达某个黑色顶点,输出 `Yes`; - 否则输出 `No`。

说明/提示

### 样例解释 1 在本输入中,图初始有五个顶点且没有边。 本输入包含 $12$ 个操作。 - 第 1 个操作为 `3 2`。 - 此时无法从顶点 $2$ 出发到达任何黑色顶点,因此输出 `No`。 - 第 2 个操作为 `2 2`。 - 顶点 $2$ 是白色,将其变为黑色。 - 第 3 个操作为 `3 2`。 - 此时可以从顶点 $2$ 出发到达黑色顶点 $2$,因此输出 `Yes`。 - 第 4 个操作为 `1 2 5`。 - 在顶点 $2$ 和 $5$ 之间添加一条边。 - 第 5 个操作为 `1 3 4`。 - 在顶点 $3$ 和 $4$ 之间添加一条边。 - 第 6 个操作为 `3 4`。 - 此时无法从顶点 $4$ 出发到达任何黑色顶点,因此输出 `No`。 - 第 7 个操作为 `3 5`。 - 此时可以从顶点 $5$ 出发到达黑色顶点 $2$,因此输出 `Yes`。 - 第 8 个操作为 `1 4 5`。 - 在顶点 $4$ 和 $5$ 之间添加一条边。 - 第 9 个操作为 `1 1 3`。 - 在顶点 $1$ 和 $3$ 之间添加一条边。 - 第 10 个操作为 `3 1`。 - 此时可以从顶点 $1$ 出发到达黑色顶点 $2$,因此输出 `Yes`。 - 第 11 个操作为 `2 2`。 - 顶点 $2$ 是黑色,将其变为白色。 - 第 12 个操作为 `3 1`。 - 此时无法从顶点 $1$ 出发到达任何黑色顶点,因此输出 `No`。 ### 数据范围 - 所有输入均为整数。 - $1 \le N \le 2 \times 10^5$ - $1 \le Q \le 6 \times 10^5$ - 类型 $1$ 操作满足以下条件: - $1 \le u < v \le N$ - 对于每个操作,$u$ 和 $v$ 之间的边此前未被添加过。 - 类型 $2,3$ 操作满足以下条件: - $1 \le v \le N$ 由 ChatGPT 4.1 翻译