#qm07. 树上路径的重复整数

树上路径的重复整数

题目描述:

给定一棵包含 NN 个结点的树,结点编号为 1,2,,N1, 2, \dots, N。第 i 条边连接结点 UiU_iViV_i。每个结点 ii 上都写有一个整数 AiA_i。 请针对每个 k=1,2,k=1, 2, \dots, N 解决以下问题: 在从结点 11 到结点 kk 的简单路径(即不重复经过同一结点的路径)上,是否存在两个不同的结点,它们上面写有的整数相同? 如果存在,输出 Yes;否则,输出 No

输入格式:

输入第一行给出一个正整数 N(2N2×105)N (2 \le N \le 2 \times 10^5),表示结点的个数。 第二行给出 NN 个以空格分隔的正整数 A1,A2,,AN(1Ai109)A_1, A_2, \dots, A_N (1 \le A_i \le 10^9),其中 AiA_i 是写在结点 ii 上的整数。 接下来的 N1N-1 行,每行给出两个正整数 UiU_iVi(1Ui,ViN)V_i (1 \le U_i, V_i \le N),表示结点 UiU_iViV_i 之间有一条边。输入保证给定的图是一棵树。

输出格式:

输出共 NN 行。第 ii 行对应 k=ik=i 时的判定结果:若存在重复整数则输出 Yes,否则输出 No

输入样例 1:

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

输出样例 1:

No
No
No
Yes
Yes

输入样例 2:

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

输出样例 2:

No
Yes
Yes
Yes
Yes
No
No
No
No
Yes

样例说明 1:

  • 对于 k=1k=1:路径为 (1)(1),整数序列为 (1)(1),无重复,输出 No
  • 对于 k=2k=2:路径为 (1,2)(1, 2),整数序列为 (1,3)(1, 3),无重复,输出 No
  • 对于 k=3k=3:路径为 (1,3)(1, 3),整数序列为 (1,2)(1, 2),无重复,输出 No
  • 对于 k=4k=4:路径为 (1,3,4)(1, 3, 4),整数序列为 (1,2,1)(1, 2, 1),整数 11 重复,输出 Yes
  • 对于 k=5k=5:路径为 (1,3,5)(1, 3, 5),整数序列为 (1,2,2)(1, 2, 2),整数 22 重复,输出 Yes