P1019星语楠尘stardust

时间限制 2000 ms内存限制 512 MiB通过率 0.0%
显示算法标签树 · 构造 · 特殊判题

【题目背景】

离开营地后,tfbz 在旅途中来到星尘镇,并在这里结识了许多可以托付性命的朋友。为了帮助他们恢复与外界的联系,他决定修复失效已久的星语传递系统。

【题目描述】

星尘镇中共有 nn 座星塔,编号为 1n1\sim n。星塔之间由 n1n-1 条双向的星尘脉络连接,并且任意两座星塔之间都能通过这些脉络相互到达,因此它们构成一棵树。

夜幕降临时,每座星塔都会记录一种从天空传来的星语,第 ii 座星塔记录的星语种类为 cic_i。然而,传递系统停运太久,不同种类的星语已经混入同一片脉络;如果直接重新启动,镇民仍然无法分辨收到的消息。

tfbz 与朋友们沿着所有星尘脉络逐一检查,发现修复系统的关键是重新确定星语传递的起点。他需要选择一座星塔 rr 作为星语源点,让所有星语都从这里沿着脉络向外传递;也就是说,将整棵树以 rr 为根。

对于任意一座不是源点的星塔 uu,定义它的星语支系为:星塔 uu 本身,以及以 rr 为根时 uu 的所有后代。若一片星语支系中所有星塔记录的星语种类相同,则称这片支系稳定。

只有每一片需要检查的支系都稳定,星语才能被准确传到镇中的每一处。tfbz 想知道,是否存在一座星语源点,使每座非源点星塔的星语支系都稳定。源点对应的整棵树不需要稳定;若存在,请给出任意一座合法的星塔。

【输入格式】

从文件 stardust.in\textbf{\textit{stardust.in}} 中读入数据。

本题有多组测试数据。第一行一个正整数 TT,表示测试数据组数。

对于每组测试数据,第一行一个整数 nn,表示星塔的数量。

接下来 n1n-1 行,每行两个整数 u,vu,v,表示星塔 u,vu,v 之间有一条星尘脉络。

最后一行 nn 个整数 c1,c2,,cnc_1,c_2,\ldots,c_n,其中 cic_i 表示第 ii 座星塔记录的星语种类。

【输出格式】

输出到文件 stardust.out\textbf{\textit{stardust.out}} 中。

对于每组测试数据:

  • 若不存在合法的根,输出一行 NO
  • 否则,第一行输出 YES,第二行输出任意一个合法的根。

每组测试数据的输出依次排列,不需要输出额外的空行。

【样例 1 输入】

161 21 32 42 53 67 2 3 2 2 3

【样例 1 输出】

YES1

【说明/提示】

【样例 1 解释】

选择第 11 座星塔作为星语源点。第 22 座星塔的星语支系包含星塔 2,4,52,4,5,它们记录的星语种类均为 22;第 33 座星塔的星语支系包含星塔 3,63,6,它们记录的星语种类均为 33。其余非源点星塔的支系只包含自身,因此均满足要求。

如果存在多个合法的根,输出任意一个均可。

【样例 2】

见选手目录下的 stardust/stardust2.in\textbf{\textit{stardust/stardust2.in}}stardust/stardust2.ans\textbf{\textit{stardust/stardust2.ans}}

该组样例符合测试点 151\sim 5 的数据范围。

【样例 3】

见选手目录下的 stardust/stardust3.in\textbf{\textit{stardust/stardust3.in}}stardust/stardust3.ans\textbf{\textit{stardust/stardust3.ans}}

该组样例符合测试点 6106\sim 10 的数据范围。

【样例 4】

见选手目录下的 stardust/stardust4.in\textbf{\textit{stardust/stardust4.in}}stardust/stardust4.ans\textbf{\textit{stardust/stardust4.ans}}

该组样例符合测试点 111511\sim 15 的数据范围。

【样例 5】

见选手目录下的 stardust/stardust5.in\textbf{\textit{stardust/stardust5.in}}stardust/stardust5.ans\textbf{\textit{stardust/stardust5.ans}}

该组样例符合测试点 162016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证:1T1041\leq T\leq 10^42n1052\leq n\leq 10^51u,vn1\leq u,v\leq nuvu\ne v1ci1051\leq c_i\leq 10^5,输入给出的图是一棵树,且单个测试点内所有测试数据的 nn 之和不超过 10510^5

测试点编号TTnnn\sum n特殊性质
151\sim 5104\leq 10^41000\leq 10001000\leq 1000
6106\sim 10104\leq 10^4105\leq 10^5105\leq 10^5A
111511\sim 15104\leq 10^4105\leq 10^5105\leq 10^5B
162016\sim 20104\leq 10^4105\leq 10^5105\leq 10^5

特殊性质 A:输入给出的树是一条链。

特殊性质 B:若存在合法的星语源点,则第 11 座星塔是合法的星语源点

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解