#P11194. [COTS 2021] 县 Županije

    ID: 10674 Type: RemoteJudge 2000ms 500MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>2021Special JudgeO2优化构造COCI(克罗地亚)

[COTS 2021] 县 Županije

题目背景

译自 Izborne Pripreme 2021 (Croatian IOI/CEOI Team Selection) D1T3。2s,0.5G\texttt{2s,0.5G}

题目描述

给定 NN 个点的树。已经将这 NN 个点划分成了 KK 个县。

现在你要为每个县确定一个县城。设第 ii 个点属于的县为 BiB_i,每个县的县城为 A1,A2,,AKA_1,A_2,\cdots,A_K(必须两两不同),则下列关系式必须满足:

  • 1iN\forall 1\le i\le N,$\displaystyle \operatorname{dist}(i,A_{B_i})\lt \min_{j=1,j\neq B_i}^K \operatorname{dist}(i,A_j)$。

其中,dist(a,b)\mathrm{dist}(a,b) 定义为 a,ba,b 之间简单路径的边数。

也就是说,每个县中的点到它所属的县城距离必须严格小于到其它县城的距离。

判断这是否是可以达成的。如果可以的话,需要给出一组符合条件的方案。

输入格式

第一行,两个正整数 N,KN,K

第二行,NN 个整数 B1,B2,,BNB_1,B_2,\cdots,B_N

接下来 (N1)(N-1) 行,每行两个正整数 u,vu,v,描述一条树边 (u,v)(u,v)

输出格式

如果可行的话,第一行输出 DA(克罗地亚语「是」);第二行 KK 个整数,第 ii 个整数表示第 ii 个县的县城。

否则输出 NE(克罗地亚语「否」)。

3 2
1 1 2
1 2
2 3
DA
2 3
4 3
1 2 2 3
1 2
2 3
3 4
NE
8 3
1 2 1 2 2 1 3 3
1 2
1 3
2 4
2 5
3 6
3 7
7 8
DA
1 2 8

提示

样例解释

下图是样例 33 的解释。

数据范围

【评分方式】如果你回答对了第一问,可以获得 40%40\% 的分数。但是需要保证输出格式正确,即,如果只打算回答第一问,也要在第二行输出 KK 个不同的 [1,N]\in [1,N] 的整数。

对于 100%100\% 的数据,保证 1BiKN2×1051\le B_i\le K\le N\le 2\times 10^5,给出的是一棵树。

子任务编号 NN\le 特殊性质 得分
1 1 20 20 10 10
2 2 2000 2\, 000 25 25
3 3 2×105 2\times 10^5 30 30
4 4 35 35

特殊性质:每个点的度数为 1133