#P51288. 「JOISC 2020 Day4」首都城市

「JOISC 2020 Day4」首都城市

题目描述

题目译自 JOISC 2020 Day4 T1「首都 / Capital City

在 JOI 的国度有 NN 个小镇,从 11NN 编号,并由 N1N-1 条双向道路连接。第 ii 条道路连接了 AiA_iBiB_i 这两个编号的小镇。

这个国家的国王现将整个国家分为 KK 个城市,从 11KK 编号,每个城市都有附属的小镇,其中编号为 jj 的小镇属于编号为 CjC_j 的城市。每个城市至少有一个附属小镇。

国王还要选定一个首都。首都的条件是该城市的任意小镇都只能通过属于该城市的小镇到达。

但是现在可能不存在这样的选址,所以国王还需要将一些城市进行合并。对于合并城市 xxyy ,指的是将所有属于 yy 的小镇划归给 xx 城。

你需要求出最少的合并次数。

输入格式

输入第一行两个整数 N,KN,K,为小镇和城市的数量。

接下来的 N1N-1 行,每行两个整数 Ai,BiA_i,B_i,描述了 N1N-1 条道路。

再接下来的 NN 行,每行一个整数 CjC_j,表示编号为 jj 的小镇属于编号为 CjC_j 的城市。

输出格式

输出一行一个整数为最少的合并次数。

样例 1

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

你可以对城市 1133 进行合并,然后选定 11 为首都,因为最初任何城市都无法作为首都。总花费为 11

这个样例满足子任务 1,2,41,2,4

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

这个样例满足子任务 1,2,3,41,2,3,4

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,2,41,2,4

数据范围与提示

对于 100%100\% 的数据,1N2×1051\leq N\leq 2\times 10^5,保证:

  • 1KN1\leq K\leq N

  • 1Ai,BiN(1iN1)1\leq A_i,B_i\leq N(1\leq i\leq N-1)

  • 从任何一个小镇出发都能到达其他任何小镇;

  • 1CjK(1jN)1\leq C_j\leq K(1\leq j\leq N)

  • 对于每一个 k(1kK)k(1\leq k\leq K),存在一个 j(1jN)j(1\leq j\leq N),使得 Cj=kC_j=k

详细子任务及附加限制如下表所示:

子任务编号 附加限制 分值
11 N20N\leq 20 11
22 N2000N\leq 2000 1010
33 每个小镇最多可通过公路与两个小镇直接相连 3030
44 无附加限制 5959