CF983E NN country

题目描述

在 NN 国,有 $n$ 个城市,编号从 $1$ 到 $n$,以及 $n-1$ 条道路连接这些城市。任意两个城市之间都存在一条道路路径。 有 $m$ 条双向公交线路连接城市。公交车在两座城市之间行驶,沿最短路径经过并在途经的每个城市停靠。乘坐公交车时,你可以从该线路上的任意一站前往任意其他一站。你只能通过公交车在城市间旅行。 你感兴趣的是 $q$ 个问题:是否可以从一个城市到达另一个城市,以及为此最少需要乘坐多少辆公交车?

输入格式

第一行包含一个整数 $n$($2 \le n \le 2 \cdot 10^5$)——城市数量。 第二行包含 $n-1$ 个整数 $p_2, p_3, \ldots, p_n$($1 \le p_i < i$),其中 $p_i$ 表示城市 $p_i$ 和 $i$ 之间有一条道路连接。 第三行包含一个整数 $m$($1 \le m \le 2 \cdot 10^5$)——公交线路数量。 接下来的 $m$ 行,每行包含两个整数 $a$ 和 $b$($1 \le a, b \le n$,$a \neq b$),表示有一条公交线路连接城市 $a$ 和 $b$。两座城市之间可能有多条线路。 下一行包含一个整数 $q$($1 \le q \le 2 \cdot 10^5$)——你感兴趣的问题数量。 接下来的 $q$ 行,每行包含两个整数 $v$ 和 $u$($1 \le v, u \le n$,$v \neq u$),表示你想知道是否可以从城市 $v$ 到达城市 $u$,以及最少需要乘坐多少辆公交车。

输出格式

对于每个问题,输出一行答案。如果无法从一个城市到达另一个城市,输出 $-1$。否则输出你必须乘坐的最少公交车数量。

说明/提示

![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF983E/c42b59e68a69956240c890e5363c8c983d1d430c.png) 第一组样例的公交线路如图所示。 由 ChatGPT 4.1 翻译