3638. 染色游戏

单点时限: 3.0 sec

内存限制: 512 MB

oxx 是一个大土豪,花 58 dollars 买了一个染色游戏:

oxx 通过一系列神乎其神的操作,把地图转换成了一棵树的结构,这棵树有 n 个结点,且这这棵树根结点是 1

游戏开始前,已经有 m 条道路被染色了。具体地,会告诉你两个结点 xy,染色的路径是结点 xy 的最短的路径。同一条路径可以被重复染色多次,按多次计算。

现在,oxx 想从一个结点向根结点进发。他希望找一条路,使得路的长度尽可能的长,且路是从该结点走向根结点最短路中的一段。当然,oxx 为了在游戏中获得更多的分数,他希望选择的这条路至少给 k 条染色的路径完全覆盖。

换句话说:要选出一条最长的路径 (p,q),满足 pq 的祖先,且 (p,q) 被至少 k 条染色路径完全覆盖。

输入格式

第一行两个整数 n,m (2n2105, 1m2105),分别表示结点数量、被染色的路径数量。

第二行包含 n1 个整数 f2,f3,,fn (1fii1),分别表示结点 2,3,,n 的父结点编号。

接下来的 m 行,每行包含两个整数 xy (1x,yn,xy),表示被染色路径的两个结点编号。

最后一行一个整数 k (0km),表示需要的路径数量。

输出格式

一个整数,表示最长的路径长度。

样例

Input
4 3
1 2 3
1 2
3 4
4 1
1
Output
3
Input
4 3
1 2 3
1 2
3 4
4 1
3
Output
0
Input
5 3
1 2 3 4
1 3
3 5
1 5
2
Output
2

提示

样例 1 解释:

只需要被一条染色的路径完全覆盖,(1,4) 恰好被第一条染色路径 (1,4) 覆盖,所以最长的长度为3。

样例 2 解释:

无法做到被所有路径覆盖。

11 人解决,20 人已尝试。

12 份提交通过,共有 159 份提交。

6.9 EMB 奖励。

创建: 6 年,7 月前.

修改: 6 年,6 月前.

最后提交: 1 年,9 月前.

来源: EOJ Monthly 2018.9

题目标签