luogu#P7215. [JOISC2020] 首都

[JOISC2020] 首都

题目背景

JOI 国是一个庞大的国度。

题目描述

JOI 国拥有 NN 个城镇,编号为 11NN,这些城镇由 N1N-1 条双向道路连接。

JOI 国还拥有 KK 个城市,编号为 11KK,第 ii 个城镇属于第 CiC_i 个城市。

现在 JOI 国的总理 JOI 君 114514 世要挑选一个城市作为首都,从首都中的任一个城镇到达另一个首都中的城镇可以只经过首都中的城镇,但这明显是不合理的。

所以 JOI 君 114514 世要进行合并城市,合并城市 xx 和城市 yy 就会把城市 yy 里的所有小镇归为城市 xx

求能找到首都的最小合并次数。

输入格式

第一行两个整数 N,KN,K 代表城镇数和城市数。
接下来 N1N-1 行每行两个整数 u,vu,v 代表一条双向边。
接下来 NN 行第 ii 行一个整数 CiC_i 代表第 ii 个城镇属于第 CiC_i 个城市。

输出格式

一行一个整数代表最小的合并次数。

6 3
2 1
3 5
6 2
3 4
2 3
1
3
1
2
3
2
1
8 4
4 1
1 3
3 6
6 7
7 2
2 5
5 8
2
4
3
1
1
2
3
4
1
12 4
7 9
1 3
4 6
2 4
10 12
1 2
2 10
11 1
2 8
5 3
6 7
3
1
1
2
4
3
3
2
2
3
4
4
2

提示

样例 1 解释

可以将城市 1133 合并,然后选择城市 11 作为首都。

子任务

子任务 特殊性质 分数
11 N20N \le 20 11
22 N2000N \le 2000 1010
33 每个城镇最多与两个城镇相连 3030
44 5959

对于 100%100\% 的数据,1K,u,vN2×1051 \le K,u,v \le N \le 2 \times 10^5,保证从任何一个城镇出发都能到达其他城镇,1CiK1 \le C_i \le K

说明

翻译自 第19回日本情報オリンピック 春季トレーニング合宿 Day4 A 首都