时间限制:1.0 s 内存限制:512.0 MB
小杨有一棵包含n个节点的树,节点从1到n编号,每个节点要么是白色,要么是黑色。
树上的一条简单路径(不经过重复节点)是美丽路径当且仅当路径上相邻节点的颜色均不相同。例如下图中,节点1和节点4是黑色,其余节点为白色:路径2-1-3-4是美丽路径,路径2-1-3-5不是美丽路径(相邻节点3和5颜色相同)。
路径的长度为路径包含的节点数量,请你求出最长的美丽路径的长度。
第一行包含一个正整数n,代表节点数量。 第二行包含n个整数$c_1,c_2,\dots,c_n$,代表每个节点的颜色:$c_i=0$表示节点i为白色,$c_i=1$表示节点i为黑色。 之后$n-1$行,每行包含两个正整数$u_i,v_i$,代表存在一条连接节点$u_i$和$v_i$的边。
输出一个整数,代表最长美丽路径的长度。
5
1 0 0 1 0
1 2
3 5
4 3
1 3
4
5
0 0 0 0 0
1 2
2 3
3 4
4 5
1
| 子任务编号 | 数据点占比 | n | 特殊条件 |
|---|---|---|---|
| 1 | 30% | ≤ 1000 | 树的形态是一条链 |
| 2 | 30% | ≤ 1000 | 无 |
| 3 | 40% | ≤ $10^5$ | 无 |
对于全部数据,保证$1 \leq n \leq 10^5$,$0 \leq c_i \leq 1$,输入数据为合法的树结构。