LG#ABC278C. [ABC278C] 互相关注(FF)

提交1 通过1
通过率100%
时间限制2000ms
内存限制1024MiB

题目描述

题目描述

一个社交平台有 NN 名用户,编号为 11NN。开始时,所有用户都没有关注任何人。

关注是有方向的:用户 AA 关注用户 BB,并不表示 BB 也关注了 AA。只有双方都关注对方,才叫“互相关注”。

现在按先后顺序进行 QQ 次操作,每次给出三个整数 T,A,BT,A,B

  • T=1T=1 时,用户 AA 关注用户 BB。如果已经关注,则状态不变。
  • T=2T=2 时,用户 AA 取消对用户 BB 的关注。如果原本没有关注,则状态不变。取消关注只改变 AABB 的关系,不改变 BBAA 的关系。
  • T=3T=3 时,查询此刻用户 AA 和用户 BB 是否互相关注。

请依次回答所有查询。关注关系不会传递:即使 AA 关注 BBBB 关注 CC,也不能据此认为 AA 关注 CC

输入格式

第一行输入两个整数 N,QN,Q,分别表示用户数量和操作次数。

接下来 QQ 行,每行输入三个整数 T,A,BT,A,B,表示一次操作,含义如题目描述所示。必须按输入顺序处理这些操作。

输出格式

每遇到一次 T=3T=3 的查询,就输出一行答案:

  • 如果用户 AA 关注了 BB,并且用户 BB 也关注了 AA,输出 Yes
  • 否则输出 No

大小写必须与上述单词一致。T=1T=1T=2T=2 的操作不需要输出。

输入样例 #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

样例解释 #1

第一次查询时只有 1 关注 2,因此输出 No。2 关注 1 后,第二次查询输出 Yes。1 和 3 没有互相关注,第三次查询输出 No。最后 1 取消对 2 的关注,即使 2 仍然关注 1,第四次查询也输出 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

输出样例 #2

Yes
No

样例解释 #2

重复执行“1 关注 2”不会叠加关注次数。执行一次取消关注就会移除这条关系,所以两次查询依次得到 YesNo

输入样例 #3

3 7
2 1 2
3 1 2
1 1 2
1 2 3
3 1 3
1 3 1
3 1 3

输出样例 #3

No
No
No

样例解释 #3

取消一条不存在的关注关系不会产生变化。虽然之后 1 关注 2、2 关注 3,但 1 没有直接关注 3;最后只有 3 关注 1,双方仍未互相关注,因此三次查询都输出 No

数据范围

2N1092 \le N \le 10^91Q2×1051 \le Q \le 2\times10^5

T{1,2,3}T\in\{1,2,3\}1A,BN1\le A,B\le N,且 ABA\ne B

保证至少有一次 T=3T=3 的查询。所有输入均为整数。

题目来源

洛谷 AT_abc278_cAtCoder 原题。中文表述按原题规则整理。