AT_joisc2019_k.合併 (Mergers)

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

JOI 合众国有 NN 个城市,编号为 1…N1\dots N,并且有 N−1N−1 条高速公路,编号为 1…N−11\dots N−1。第 i(1≤i≤N−1)i (1\le i\le N−1) 条高速公路双向连接城市 AiA_i 与 BiB_i。一个人可以利用高速公路从任意一个城市到达另一个城市。

目前,JOI 合众国有 KK 个州,编号为 1…K1\dots K,城市 j(1≤j≤N)j (1\le j\le N) 属于州 SjS_j。任意一个州内至少有一个城市。

JOI 合众国总统 K 先生害怕国家会分裂。JOI 合众国被称作可分裂的当且仅当所有城市可以被划分为 X\texttt X 组和 Y\texttt Y 组,并且满足以下条件:

  • 所有城市属于 X\texttt X 组或 Y\texttt Y 组之一;
  • X\texttt X 组中至少有一个城市;
  • Y\texttt Y 组中至少有一个城市;
  • 对于任意一个州,所有所属州相同的城市都在同一组;
  • 一个人可以从 X\texttt X 组的任意一个城市出发,通过高速公路且只经过 X\texttt X 组的城市到达 X\texttt X 组的任意一个城市;
  • 一个人可以从 Y\texttt Y 组的任意一个城市出发,通过高速公路且只经过 Y\texttt Y 组的城市到达 Y\texttt Y 组的任意一个城市。

K 先生将要合并一些州,使得 JOI 合众国是不可分裂的。当他合并州的时候,他会选择两个州,然后把这两个州合并成一个新州。新州下辖的城市为原来两个州所有下辖的城市。K 先生想要在合并次数最少的情况下完成合并任务,使得 JOI 合众国是不可分裂的。

注意,如果 JOI 合众国只有一个州,那么它是不可分裂的。

写一个程序,在给定所有城市,州和高速公路的信息的情况下,计算使得 JOI 合众国不可分裂的最小合并次数。

输入格式

第一行两个正整数 N,KN,K,表示城市数量和洲的数量。

接下来 N−1N-1 行每行两个正整数 Ai,BiA_i,B_i,表示一条高速公路。

接下来 NN 行每行一个数 SjS_j,表示第 jj 个城市属于第 SjS_j 个洲。

输出格式

输出一行一个整数,表示使得 JOI 合众国不可分裂的最小合并次数。

说明/提示

输入输出样例

样例输入 #1

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

样例输出 #1

1

样例输入 #2

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

样例输出 #2

0

样例输入 #3

2 2
1 2
1
2

样例输出 #3

1

说明/提示

【样例解释】

对于第一组样例,最初国家是可分裂的。例如,将城市 1,2,3,41,2,3,4 归为 X\texttt X 组,将城市 55 归为 Y\texttt Y 组。如果将第 33 个洲和第 44 个洲合并,国家就会变得不可分裂。因此答案是 11。

对于第二组样例,最初国家是不可分裂。因此答案是 00。

【数据范围】

对于 100%100\% 的数据,1≤N≤5×105,1≤K,Ai,Bi≤N,1≤Si≤K1\le N\le 5\times 10^5,1\le K,A_i,B_i\le N,1\le S_i\le K。

输入解题思路,AI测评打分。不知道怎么写?

首页