#CSES2133. 动态连通性

    ID: 372 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>数据结构动态图并查集线段树分治连通性CSES结构体图论

动态连通性

题目背景

翻译自 CSES-2133 题。

题目描述

考虑一个由 nn 个节点和 mm 条边组成的无向图。可能会发生两种类型的事件:

  1. 在节点 aa 和节点 bb 之间创建一条新的边。
  2. 移除节点 aa 和节点 bb 之间的一条已存在的边。

你的任务是报告每次事件之后的连通分量数量。

输入格式

第一行包含三个整数 nnmmkk:分别表示节点数、边数和事件数。

接下来有 mm 行描述图中的边。每行包含两个整数 aabb,表示节点 aa 和节点 bb 之间有一条边。图中每一对节点之间最多只有一条边。

然后有 kk 行描述事件。每行的格式为 "tt aa bb",其中 tt 是 1(表示创建一条新边)或 2(表示移除一条边)。新边总是创建在两个节点之间,这两个节点之间原本没有边,且只有已存在的边可以被移除。

输出格式

输出 k+1k+1 个整数:首先输出事件发生前的连通分量数量,然后输出每次事件发生后的连通分量数量。

样例

5 3 3
1 4
2 3
3 5
1 2 5
2 3 5
1 1 2
2 2 2 1

数据范围

  • 2n1052 \le n \le 10^5
  • 1m,k1051 \le m, k \le 10^5
  • 1a,bn1 \le a, b \le n