D - Propagating Edges Editorial

Time Limit: 3 sec / Memory Limit: 1024 MiB

配点 : 800800

問題文

NN 頂点 00 辺の無向グラフが与えられます。以下のクエリを QQ 個処理して下さい。

  • addクエリ(type=1,u,vtype = 1, u, v): uuvv の間に辺が無ければ辺を貼る。
  • completeクエリ(type=2,u,v=0type = 2, u, v = 0): 全ての頂点対 a,ba, b について以下を行う, u,a,bu, a, b がすべて連結で,かつ a,ba, b 間に辺がない場合,a,ba, b の間に辺を貼る。
  • checkクエリ(type=3,u,vtype = 3, u, v): u,vu, v が与えられる。uuvv を直接結ぶ辺がある場合Yes、そうでない場合Noを出力する。

制約

  • 2N100,0002 \leq N \leq 100,000
  • 1Q200,0001 \leq Q \leq 200,000
  • typei=1,2,3type_i = 1, 2, 3
  • 1uiN1 \leq u_i \leq N
  • add, checkクエリにおいて 1viN1 \leq v_i \leq N かつ uiviu_i \neq v_i
  • completeクエリにおいて vi=0v_i = 0
  • 入力される値は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

NN QQ
type1type_1 u1u_1 v1v_1
type2type_2 u2u_2 v2v_2
::
typeQtype_Q uQu_Q vQv_Q

出力

各checkクエリに対し、YesNoを出力してください。


入力例 1Copy

Copy
3 6
1 1 2
1 2 3
3 1 2
3 1 3
2 1 0
3 1 3

出力例 1Copy

Copy
Yes
No
Yes

1,21, 2 つ目のクエリで(1,2)(1, 2), (2,3)(2, 3)に辺が張られます。 そして、55 つ目のクエリで(1,3)(1, 3) 間に辺が張られます。


入力例 2Copy

Copy
3 6
2 3 0
3 1 3
1 3 1
2 3 0
1 1 2
3 2 1

出力例 2Copy

Copy
No
Yes

入力例 3Copy

Copy
8 20
1 3 6
2 6 0
2 2 0
2 7 0
1 7 3
3 2 6
1 4 2
3 3 7
1 2 6
2 4 0
2 2 0
3 3 1
2 8 0
2 8 0
1 8 2
2 7 0
3 5 4
1 4 2
3 5 7
3 2 3

出力例 3Copy

Copy
No
Yes
No
No
No
Yes


2025-06-06 (Fri)
15:21:33 +00:00