#P1130. 【模板】启发式合并

【模板】启发式合并

Description

启发式合并是一种用于优化合并操作的技巧。一般而言朴素合并是 $O(n^2)$ 的,用启发式合并可以做到 $O(n\log n)$。例如可以用在优化并查集合并上。

虽然不常用,但不难掌握。


初始 $n$ 个集合,共 $m$ 次操作,每次选择其中两个进行合并,升序输出最终集合大小最大的集合元素。

Input Format

第一行两个整数 $n,m$ 分别表示初始集合个数和操作次数。

第二行 $n$ 个整数表示第 $i$ 个集合的初始元素。

接下来 m 行,每行表示一个操作。

    $1.$ x y   合并 $x$ 号元素所在集合和 $y$ 号元素所在集合。

Output Format

第一行一个整数表示集合大小最大的集合大小。

第二行若干个整数表示集合元素。

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

Hint

$1≤m<n≤10^6$

Source

模板