
持久并查集(Persistent Unionfind)
问题描述
设 G−1 为一个含 N 个顶点、无边的图。
处理 Q 个查询,第 i 个查询形式如下:
0 k_i u_i v_i:令 Gi 为在 Gki 中添加边 (ui,vi) 所得的图。
1 k_i u_i v_i:若顶点 ui 与 vi 在 Gki 中连通输出 1;否则输出 0。
约束说明:对所有 i,ki=−1 或 ki=0,即每次操作基于初始图或前一个图。
约束条件
- 1≤N≤2×105
- 1≤Q≤2×105
- ti∈{0,1}
- −1≤ki<i
- 对所有 ki,有 ki=−1 或 ki=0
- 0≤ui,vi<N
输入
N Q
t0 k0 u0 v0
t1 k1 u1 v1
:
tQ−1 kQ−1 uQ−1 vQ−1
5 12
0 -1 0 1
0 0 0 2
1 -1 0 1
1 0 0 1
1 1 0 1
0 1 3 4
0 1 2 3
1 5 1 4
0 5 2 3
1 8 1 4
0 6 3 4
1 10 1 4
0
1
1
0
1
1