魔法师小明收集了 n 颗魔法宝石,编号从 1 到 n。每颗宝石都具有光明或黑暗属性。小明希望用这些宝石制作一条最强大的魔法项链。
对于项链中的一段连续宝石序列(不重复使用宝石),如果相邻宝石的属性交替变化(光明→黑暗→光明→... 或 黑暗→光明→黑暗→...),则这段序列被称为"和谐序列"。例如,若宝石1和4为黑暗属性,其余为光明属性,序列2-1-3-4就是和谐序列,而序列2-1-3-5不是(相邻宝石3和5均为光明属性)。
魔法项链的威力取决于其最长和谐序列的长度。小明想知道,他能制作出的魔法项链的最大威力是多少?
n\leq 2 \times 10^5
第一行包含一个正整数 n,表示宝石数量。
第二行包含 n 个整数 a_1, a_2, a_3, \dots a_n,代表每颗宝石的属性。如果 a_i = 0,宝石 i 为光明属性;如果 a_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
时间限制 | 1 秒 |
内存限制 | 128 MB |