题目描述
译自 JOI 2023 Final T4「キャットエクササイズ / Cat Exercise」
有 N 个猫爬架,从 1 到 N 编号。猫爬架 i (1≤i≤N) 的高度为 Pi。猫爬架的高度是 1 到 N 之间(包括两端)互不相同的整数。有 N−1 对相邻的猫爬架。对于每个 j (1≤j≤N−1),猫爬架 Aj 和 Bj 相邻。最初,可以从任意猫爬架开始,通过移动到与其相邻的猫爬架到达任意其他猫爬架。
在最初,一只猫处在高度为 N 的猫爬架上。
然后我们训练这只猫。在训练中,我们不断选择一个猫爬架,然后在它上面放置一个障碍物。然而,我们不能把障碍物放在已经放有障碍物的猫爬架上。在这个过程中,如下事件会发生。
- 如果猫没在这个选中的猫爬架上,那么什么都不会发生。
- 如果猫处于这个选中的猫爬架上,并且所有与其相邻的猫爬架上都有障碍物,那么训练结束。
- 否则,在猫可以通过不断移动到相邻且没有障碍物的猫爬架的方式到达的所有猫爬架中,猫将选择除目前所在猫爬架以外最高的那个,并移动到那里去。在这个过程中,猫将选择最短路径移动。
给定猫爬架的高度信息和相邻的猫爬架对,写一个程序计算如果我们恰当地放置障碍物,每次操作中猫移动次数之和的最大值是多少。
输入格式
第一行一个整数 N。
第二行 N 个整数 P1,P2,…,PN。
接下来 N−1 行,每行两个整数 Aj,Bj。
输出格式
输出一行一个整数,表示每次操作中猫移动次数之和的最大值。
4
3 4 1 2
1 2
2 3
3 4
3
7
3 2 7 1 5 4 6
1 2
1 3
2 4
2 5
3 6
3 7
7
数据范围与提示
对于全部数据,满足
- 2≤N≤2×105
- 1≤Pi≤N (1≤i≤N)
- Pi=Pj (1≤i<j≤N)
- 1≤Aj<Bj≤N (1≤j≤N−1)
- 最初,可以从任意猫爬架开始,通过移动到与其相邻的猫爬架到达任意其他猫爬架。
详细子任务附加限制及分值如下表所示。
| 子任务编号 |
附加限制 |
分值 |
| 1 |
Ai=i,Bi=i+1 (1≤i≤N−1),N≤16 |
7 |
| 2 |
Ai=i,Bi=i+1 (1≤i≤N−1),N≤300 |
| 3 |
Ai=i,Bi=i+1 (1≤i≤N−1),N≤5 000 |
| 4 |
N≤5 000 |
10 |
| 5 |
Ai=i,Bi=i+1 (1≤i≤N−1) |
20 |
| 6 |
$A_i=\lfloor\frac{i+1}{2}\rfloor,B_i=i+1\ (1\le i\le N-1)$,其中 ⌊x⌋ 是小于等于 x 的最大整数 |
23 |
| 7 |
无附加限制 |
26 |