已结束 GESP排位赛#5
← 上一题 下一题 →

A1773 | Acgo社区

时间限制3s
内存限制512MB
通过 / 提交0/0

题目描述

时间限制:3000ms
内存限制:512MB

在 $\textbf{Acgo}$ 社区的每名用户可以关注或者取消关注其他用户。假设 $\textbf{Acgo}$ 社区现在有从 $1$ 到 $N$ 共 $N$ 名用户,自 $\textbf{Acgo}$ 推出以来,已经进行了 $Q$ 次操作。 对于第 $i(1 \le i \le Q)$ 次操作由三个整数 $C_i$,$A_i$ 和 $B_i$ 表示,含义如下:

- 如果 $C_i = 1$:表示用户 $A_i$ 关注了用户 $B_i$。 如果用户 $A_i$ 已经关注了 $B_i$,则不做任何操作。
- 如果 $C_i = 2$:表示用户 $A_i$ 取消关注了用户 $B_i$。 如果用户 $A_i$ 没有关注用户 $B_i$,则不会做任何操作。
- 如果 $C_i = 3$:需要你判断用户 $A_i$ 和 $B_i$ 此时是否互相关注。即如果用户 $A_i$ 正在关注 $B_i$,并且用户 $B_i$ 正在关注用户 $A_i$ 输出 $\tt{Yes}$ 否则输出 $\tt{No}$。

一开始时没有任何用户关注任何其他用户。

输入格式

每个测试点包含多个测试用例。第一行为测试用例的总数 $t(1 \le t \le 10)$。

每个测试用例的第一行为社区的总人数 $N(1 \le N \le 10^9)$ 和总操作次数 $Q(1 \le Q \le 2 \times 10^5)$。

每个测试用例的第 $2$ 行到 $Q + 1$ 行,每行包含三个整数 $C_i(1, 2, 3)$,$A_i(1 \le A_i \le N)$ 和 $B_i(1 \le B_i \le N)$,含义如题面所陈述。

题目保证所有测试用例的 $Q$ 的总和不超过 $4 \times 10^5$。

输出格式

对于每个测试用例的每个 $C_i = 3$ 的操作,若此时用户$A_i$ 和 $B_i$ 互相关注,输出 $\tt{Yes}$ 否则输出 $\tt{No}$。

你可以输出 $\tt{Yes}$ 和 $\tt{No}$ 的任意大小写形式(例如,字符串 $\tt{yEs}$、$\tt{yes}$、$\tt{Yes}$ 和 $\tt{YES}$ 都会被视为正确答案)。

输入输出样例

输入 #1
1
3 9
1 1 2
3 1 2
1 2 1
3 1 2
1 2 3
1 3 2
3 1 3
2 1 2
3 1 2
输出 #1
No
Yes
No
No
C++ 编辑器
输入
输出