P9352 [JOI 2023 Final] 训猫 / Cat Exercise

题目描述

有 $N$ 个猫塔,编号从 $1$ 到 $N$。塔 $i$ 的高度为 $P_i$($1 \le i \le N$)。这些塔的高度是 $1$ 到 $N$ 之间的不同整数。共有 $N - 1$ 对相邻的塔。对于每个 $j$($1 \le j \le N - 1$),塔 $A_j$ 和塔 $B_j$ 是相邻的。最开始,可以通过从一个塔移动到相邻的塔,来从一个塔到达任何其他塔。 最开始,一只猫待在高度为 $N$ 的塔上。 然后我们进行**猫运动**。在猫运动中,我们反复选择一个塔并在其上放置一个障碍。然而,我们不能在已经放置障碍的塔上再放置障碍。在这个过程中,将发生以下情况: - 如果猫不在所选的塔上,什么也不会发生。 - 如果猫在所选的塔上,并且所选塔的每个相邻塔上都有障碍,猫运动将结束。 - 否则,在猫可以通过从塔移动到相邻塔而不受障碍影响到达的塔中,猫将移动到除当前塔外最高的塔。过程中,猫会选择从塔移动到相邻塔的步数最少的路线。 给定塔的高度信息和相邻塔的对,编写程序计算在适当放置障碍的情况下,猫从塔移动到相邻塔的最大可能移动次数之和。

输入格式

从标准输入读取以下数据。 > $N$ > $P_1$ $P_2$ $\cdots$ $P_N$ > $A_1$ $B_1$ > $A_2$ $B_2$ > $\vdots$ > $A_{N-1}$ $B_{N-1}$

输出格式

向标准输出写入一行。输出应包含猫从塔移动到相邻塔的最大可能移动次数之和。

说明/提示

## 样例 ### 样例 1 如果我们按以下方式进行猫运动,猫总共移动 3 次。 - 我们在塔 1 上放置一个障碍。猫不移动。 - 我们在塔 2 上放置一个障碍。猫从塔 2 移动到塔 3。然后,猫从塔 3 移动到塔 4。 - 我们在塔 4 上放置一个障碍。猫从塔 4 移动到塔 3。 - 我们在塔 3 上放置一个障碍。然后猫运动结束。 由于没有办法进行猫运动,使得猫从塔移动到相邻塔的次数大于或等于 4,因此输出 3。 此样例输入满足子任务 1、2、3、4、5、7 的约束。 ### 样例 2 此样例输入满足子任务 4、6、7 的约束。 ## 约束 - $2 \le N \le 2\times 10^5$。 - $1 \le P_i \le N$ ($1 \le i \le N$)。 - $P_i \neq P_j$ ($1 \le i < j \le N$)。 - $1 \le A_j < B_j \le N$ ($1 \le j \le N - 1$)。 - 最开始,可以通过从一个塔移动到相邻塔,来从一个塔到达任何其他塔。 - 给定的值都是整数。 ## 子任务 1. (7 分) $A_i = i, B_i = i + 1$ ($1 \le i \le N - 1$),$N \le 16$。 2. (7 分) $A_i = i, B_i = i + 1$ ($1 \le i \le N - 1$),$N \le 300$。 3. (7 分) $A_i = i, B_i = i + 1$ ($1 \le i \le N - 1$),$N \le 5 000$。 4. (10 分) $N \le 5 000$。 5. (20 分) $A_i = i, B_i = i + 1$ ($1 \le i \le N - 1$)。 6. (23 分) $A_i =\left\lfloor\frac{i+1}2\right\rfloor, B_i = i + 1$ ($1 \le i \le N - 1$)。这里 $\lfloor x \rfloor$ 是小于或等于 $x$ 的最大整数。 7. (26 分) 无额外约束。 题面翻译由 ChatGPT-4o 提供。