CF1380E Merging Towers

题目描述

有 $n$ 个唱片,第 $i$ 个唱片半径是 $i$,最开始他们被摆放在 $m$ 个塔。每个塔的唱片高度由下到上递减,也就是半径大的唱片摆在塔的下面。 你的目标是把所有唱片摆放到某个塔上,你可以选择两个**非空**的塔,取出一个塔的上层某些(可以是所有的)唱片并摆放到另一个塔上,注意摆放完不能破坏塔的从下到上递减的性质。这个操作会产生 $1$ 的代价。 给出 $m-1$ 个操作,第 $i$ 个给出序号为 $a_i$ 和 $b_i$ 的塔。你需要在第 $i$ 个询问时回答:前 $i$ 次操作执行完之后,合并当前所有塔需要的最小代价。

输入格式

第一行 $n,m$ 表示唱片的数量和塔的数量。 接下来 $n$ 个数 $t_i$ 表示第 $i$ 个唱片所在的塔的编号。 接下来 $m-1$ 行每行两个数 $a_i,b_i$ 表示一个询问。

输出格式

输出 $m$ 行,每行对应第 $0\le i \le m-1$ 次询问的答案。

说明/提示

$2\le m\le n\le 2\cdot 10^5$ $1\le a_i,b_i\le m$ ,保证操作前 $a_i,b_i$ 塔存在唱片 $t_i$ 保证 $[1,m]$ 的数每个都会出现