#P9190. 动态图顶点加连通分量求和(Dynamic Graph Vertex Add Component Sum)

动态图顶点加连通分量求和(Dynamic Graph Vertex Add Component Sum)

动态图顶点加连通分量求和(Dynamic Graph Vertex Add Component Sum)

问题描述

给定一个初始为空的无向图,含 N N 个顶点(编号 0 0 N1 N-1 ),每个顶点 i i 初始值为 ai a_i
处理 Q Q 个查询,类型如下:

  • 0 u v:在顶点 u u v v 之间添加一条边(保证添加前无边)。
  • 1 u v:删除顶点 u u v v 之间的边(保证删除前存在该边)。
  • 2 v x:将顶点 v v 的值更新为 avav+x a_v \leftarrow a_v + x
  • 3 v:输出所有与顶点 v v 在同一连通分量中的顶点的值之和。

约束条件

  • 1N,Q3×105 1 \leq N, Q \leq 3 \times 10^5
  • 0ai,x109 0 \leq a_i, x \leq 10^9
  • 0u,v<N 0 \leq u, v < N
  • 对类型 0 查询:添加前 (u,v) (u,v) 无边;
  • 对类型 1 查询:删除前 (u,v) (u,v) 有边。

输入

N QN\ Q
a0 a1  aN1a_0\ a_1\ \cdots\ a_{N-1}
Query₀
Query₁
:
QueryQ1_{Q-1}

5 16
1 10 100 1000 10000
0 0 1
0 1 2
0 2 3
0 3 4
0 0 4
3 3
1 1 2
3 1
1 3 4
3 0
2 1 100000
3 1
0 1 4
3 2
0 3 4
3 0
11111
11111
10011
110011
1100
111111