#AT2383. C - FF

C - FF

C - FF

得分: $300$ 分

问题描述

小田户在一个名为“Twidai”的社交网络上运营着一个拥有 $N$ 个用户的平台,用户从 $1$ 到 $N$ 编号。

在 Twidai 上,用户可以关注或取消关注其他用户。

自 Twidai 开始运营以来,进行了 $Q$ 个操作。

第 $i$ 个操作($1\leq i\leq Q$)由三个整数 $T_i$,$A_i$ 和 $B_i$ 表示,它们的含义如下:

  • 如果 $T_i = 1$:表示用户 $A_i$ 关注用户 $B_i$。如果该操作执行时,用户 $A_i$ 已经在关注用户 $B_i$,则不进行任何变化。
  • 如果 $T_i = 2$:表示用户 $A_i$ 取消关注用户 $B_i$。如果该操作执行时,用户 $A_i$ 未关注用户 $B_i$,则不进行任何变化。
  • 如果 $T_i = 3$:表示你需要判断用户 $A_i$ 和用户 $B_i$ 是否互相关注。如果用户 $A_i$ 关注了用户 $B_i$,且用户 $B_i$ 关注了用户 $A_i$,则输出 Yes,否则输出 No

Twidai 平台刚开始运营时,没有用户关注其他任何用户。

按照 $i$($T_i = 3$)递增的顺序,打印所有使 $T_i=3$ 的操作的正确答案。

约束

  • $2 \leq N \leq 10 ^ 9$
  • $1 \leq Q \leq 2\times10 ^ 5$
  • $1 \leq T _ i \leq 3\ (1\leq i\leq Q)$
  • $1 \leq A _ i \leq N\ (1\leq i\leq Q)$
  • $1 \leq B _ i \leq N\ (1\leq i\leq Q)$
  • $A _ i\neq B _ i\ (1\leq i\leq Q)$
  • 存在一个 $i\ (1\leq i\leq Q)$,使得 $T _ i=3$。
  • 输入中的所有值均为整数。

输入

从标准输入中按以下格式输入:

NN QQ

T1T _ 1 A1A _ 1 B1B _ 1

T2T _ 2 A2A _ 2 B2B _ 2

\vdots

TQT _ Q AQA _ Q BQB _ Q

输出

请输出 $X$ 行,其中 $X$ 是满足条件 $T _ i=3$ 的操作的数量 $i$ 的个数 $(1\leq i\leq Q)$。 第 $j$ 行($1\leq j\leq X$)应该包含满足条件 $T _ i=3$ 的第 $j$ 个操作的答案。


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
No
Yes
No
No

Twidai 平台上有三个用户。 九个操作如下:

  • 用户 $1$ 关注用户 $2$。没有其他用户关注或被其他用户关注。
  • 判断用户 $1$ 和用户 $2$ 是否互相关注。用户 $1$ 关注用户 $2$,但用户 $2$ 未关注用户 $1$,所以在这个操作上的正确答案是 No
  • 用户 $2$ 关注用户 $1$。
  • 判断用户 $1$ 和用户 $2$ 是否互相关注。用户 $1$ 关注用户 $2$,且用户 $2$ 关注用户 $1$,所以在这个操作上的正确答案是 Yes
  • 用户 $2$ 关注用户 $3$。
  • 用户 $3$ 关注用户 $2$。
  • 判断用户 $1$ 和用户 $3$ 是否互相关注。用户 $1$ 未关注用户 $3$,用户 $3$ 未关注用户 $1$,所以在这个操作上的正确答案是 No
  • 用户 $1$ 取消关注用户 $2$。
  • 判断用户 $1$ 和用户 $2$ 是否互相关注。用户 $2$ 关注用户 $1$,但用户 $1$ 未关注用户 $2$,所以在这个操作上的正确答案是 No

输入2

2 8
1 1 2
1 2 1
3 1 2
1 1 2
1 1 2
1 1 2
2 1 2
3 1 2
Yes
No

一个用户可以多次关注同一个用户。


10 30
3 1 6
3 5 4
1 6 1
3 1 7
3 8 4
1 1 6
2 4 3
1 6 5
1 5 6
1 1 8
1 8 1
2 3 10
1 7 6
3 5 6
1 6 7
3 6 7
1 9 5
3 8 6
3 3 8
2 6 9
1 7 1
3 10 8
2 9 2
1 10 9
2 6 10
2 6 8
3 1 6
3 1 8
2 8 5
1 9 10
No
No
No
No
Yes
Yes
No
No
No
Yes
Yes