#P9352. [JOI 2023 Final] 训猫 / Cat Exercise

[JOI 2023 Final] 训猫 / Cat Exercise

Description

NN 个猫塔,编号从 11NN。塔 ii 的高度为 PiP_i1iN1 \le i \le N)。这些塔的高度是 11NN 之间的不同整数。共有 N1N - 1 对相邻的塔。对于每个 jj1jN11 \le j \le N - 1),塔 AjA_j 和塔 BjB_j 是相邻的。最开始,可以通过从一个塔移动到相邻的塔,来从一个塔到达任何其他塔。

最开始,一只猫待在高度为 NN 的塔上。

然后我们进行猫运动。在猫运动中,我们反复选择一个塔并在其上放置一个障碍。然而,我们不能在已经放置障碍的塔上再放置障碍。在这个过程中,将发生以下情况:

  • 如果猫不在所选的塔上,什么也不会发生。
  • 如果猫在所选的塔上,并且所选塔的每个相邻塔上都有障碍,猫运动将结束。
  • 否则,在猫可以通过从塔移动到相邻塔而不受障碍影响到达的塔中,猫将移动到除当前塔外最高的塔。过程中,猫会选择从塔移动到相邻塔的步数最少的路线。

给定塔的高度信息和相邻塔的对,编写程序计算在适当放置障碍的情况下,猫从塔移动到相邻塔的最大可能移动次数之和。

Input Format

从标准输入读取以下数据。

NN
P1P_1 P2P_2 \cdots PNP_N
A1A_1 B1B_1
A2A_2 B2B_2
\vdots
AN1A_{N-1} BN1B_{N-1}

Output Format

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

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

Hint

样例

样例 1

如果我们按以下方式进行猫运动,猫总共移动 3 次。

  • 我们在塔 1 上放置一个障碍。猫不移动。
  • 我们在塔 2 上放置一个障碍。猫从塔 2 移动到塔 3。然后,猫从塔 3 移动到塔 4。
  • 我们在塔 4 上放置一个障碍。猫从塔 4 移动到塔 3。
  • 我们在塔 3 上放置一个障碍。然后猫运动结束。

由于没有办法进行猫运动,使得猫从塔移动到相邻塔的次数大于或等于 4,因此输出 3。

此样例输入满足子任务 1、2、3、4、5、7 的约束。

样例 2

此样例输入满足子任务 4、6、7 的约束。

约束

  • 2N2×1052 \le N \le 2\times 10^5
  • 1PiN1 \le P_i \le N (1iN1 \le i \le N)。
  • PiPjP_i \neq P_j (1i<jN1 \le i < j \le N)。
  • 1Aj<BjN1 \le A_j < B_j \le N (1jN11 \le j \le N - 1)。
  • 最开始,可以通过从一个塔移动到相邻塔,来从一个塔到达任何其他塔。
  • 给定的值都是整数。

子任务

  1. (7 分) Ai=i,Bi=i+1A_i = i, B_i = i + 1 (1iN11 \le i \le N - 1),N16N \le 16
  2. (7 分) Ai=i,Bi=i+1A_i = i, B_i = i + 1 (1iN11 \le i \le N - 1),N300N \le 300
  3. (7 分) Ai=i,Bi=i+1A_i = i, B_i = i + 1 (1iN11 \le i \le N - 1),N5000N \le 5 000
  4. (10 分) N5000N \le 5 000
  5. (20 分) Ai=i,Bi=i+1A_i = i, B_i = i + 1 (1iN11 \le i \le N - 1)。
  6. (23 分) $A_i =\left\lfloor\frac{i+1}2\right\rfloor, B_i = i + 1$ (1iN11 \le i \le N - 1)。这里 x\lfloor x \rfloor 是小于或等于 xx 的最大整数。
  7. (26 分) 无额外约束。

题面翻译由 ChatGPT-4o 提供。