SP20775 RTREE - Roger and tree

题目描述

Roger 是一名计算机科学的学生,他对连通的无向无环图(即树)十分感兴趣。他特别喜欢解决有关树的问题。最近,他找到了一张纸,上面画着一棵有 $N$ 个顶点的有根树(顶点编号从 $1$ 到 $N$)。在这张纸上,他也发现了 $Q$ 个查询,每个查询都给出了一个从 $1$ 到 $N$ 的整数 $S$。尽管查询的具体内容没有说明,但他决定计算每个以节点 $S$ 为子树根节点的最长路径的长度。 为了高效地解决这个问题,Roger 已经连续熬了两个不眠之夜。他一直在努力,而且在找到每个查询的答案之前不会停下。请你编写一个程序,帮助他正确地回答所有的查询。

输入格式

第一行是一个整数 $N$,表示顶点的数量。接下来的 $N-1$ 行每行包含两个整数 $U$ 和 $V$,表示顶点 $U$ 和 $V$ 之间有一条边。 接下来一行包含一个整数 $R$,表示树的根节点。 接下来一行包含一个整数 $Q$,表示查询的数量。 最后的 $Q$ 行中,每行包含一个介于 $1$ 和 $N$ 之间的整数 $S$。

输出格式

对于每个查询,输出以顶点 $S$ 为根的子树中的最长路径长度。 输出共 $Q$ 行,每行对应一个查询的结果。

说明/提示

- $1 \le N, Q \le 10^5$ - $1 \le U, V, S \le N$ - $1 \le R \le N$ **本翻译由 AI 自动生成**