编程题
### 问题描述 小明进入一个神秘的空间,在这个空间的下面往往天上看去,可以看到天上有 $n$ 个星星并且有 $m$ 条线连接着他们。神奇的是这 $n$ 个星星通过这 $m$ 条线构成了一个无向联通图(**连通图指的是任选两个点都能通过边互相到达**)。 小明看着天上的星星,逐渐陷入了沉思,他在想这幅由星星构成的无向图中是否存在一个特殊点,如果将这个特殊点删除之后,剩下的 $n-1$ 个点就无法构成一个联通图了。小明想知道图中任选 $q$ 次两个点 $x$ 和 $y$ 能否**只通过**这些特殊点来互相到达,如果能,则输出点 $x$ 和 $y$ 之间的最短距离。 ### 输入格式 第一行,包含两个正整数 $n$ $(1\leq n\leq 10^5)$ 和 $m$ $(n-1\leq m\leq \frac{n\times (n-1)}{2})$ ,代表天上有 $n$ 颗星星和 $m$ 条连接星星的边。 接下来 $m$ 行,每行两个正整数 $u$ ,$v$ $(1\leq u,v\leq n)$ 。代表顶点 $u$ 和顶点 $v$ 之间有一条无向边将这两个顶点相连。 接下来一行,包含一个正整数 $q$ $(1\leq q\leq 10^5)$ ,代表小明要进行的询问次数。 接下来 $q$ 行,每行包含两个正整数 $x$ 和 $y$ $(1\leq x,y\leq n)$ ,代表小明想知道点 $x$ 能否只通过特殊点来到达点 $y$ 。 ### 输出格式 $q$ 行,每行包含一个正整数,代表这次询问中点 $x$ 到点 $y$ 的最短距离。 ### 样例输入 ``` 5 6 1 2 1 3 2 3 2 4 3 4 4 5 3 3 5 1 5 1 2 ``` ### 样例输出 ``` 2 -1 1 ``` ### 样例解释 在样例中,满足条件的特殊点只有编号为 $4$ 的点。 对于第一个询问从点 $3$ 到点 $5$ ,我们可以通过 $3\rightarrow 4\rightarrow 5$ 来到达,最短距离为 $2$ 。 对于第二个询问从点 $1$ 到点 $5$ ,我们无法只通过特殊点来到达目的地,故输出 $-1$ 。 对于第三个询问从点 $1$ 到点 $2$ ,我们可以直接从点 $1$ 走到点 $2$ ,最短距离为 $1$ 。
查看答案
赣ICP备20007335号-2