Logo Universal Online Judge

UOJ

时间限制:2 s 空间限制:1024 MB
统计

题目描述

有一座城市,城市中有 $n$ 个景点,这些景点由 $n - 1$ 条双向道路连接,保证任意两个景点之间有且仅有一条路径。

每个景点有一个美丽值,为方便起见,我们认为编号为 $i$ 的景点美丽值为 $i$,所以编号越大的景点越美丽。

现在有一位旅行者来到了这座城市,他想将这座城市的所有景点游览一遍。

旅行者会选择一个景点作为他旅行的起点,然后开始他的旅行,他会按照以下步骤在景点之间移动:

  1. 找到一个未到达过的最美丽的景点,也就是一个未到达过的编号最大的节点 $v$。
  2. 设旅行者当前所在的节点为 $u$,那么将 $u$ 到 $v$ 的路径上的所有景点都标记为到达过,并且旅行者会从 $u$ 移动到 $v$。
  3. 这样移动一次的代价为 $u$ 与 $v$ 的距离,此处我们定义两个景点的距离为,从一个景点移动到另一个节点需要的最少道路数。
  4. 如果此时所有景点都是到达过的,那么旅行者会结束他的旅行,否则他会回到步骤 $1$。

特别地,我们认为旅行的起点在初始时刻也是到达过的。

现在旅行者要开始规划他的旅程了,由于他不会算术,所以他找到了你帮他解决问题。

你需要回答 $q$ 次询问,每次旅行者会给你一个 $x$,你需要帮他求出,如果旅行者从景点 $x$ 出发,此次旅行一共需要花费多少代价。

输入格式

第一行一个正整数 $n,q$。

第 $2 \sim n$ 行,每行 $2$ 个正整数 $u, v$,表示景点 $u, v$ 之间有一条双向道路连接。

第 $n + 1$ 行 $q$ 个正整数 $x_1, x_2, \ldots, x_q$,每个数表示一次询问。

输出格式

一行 $q$ 个正整数,第 $i$ 个数表示第 $i$ 次询问的答案。

样例

样例输入 #1

5 5
1 2 
1 3 
2 4 
2 5 
1 2 3 4 5

样例输出 #1

7 6 5 5 5

样例输入 #2

10 10
2 1
3 1
4 3
5 1
6 2
7 2
8 6
9 5
10 3
1 2 3 4 5 6 7 8 9 10

样例输出 #2

18 19 17 14 19 20 18 17 16 16

样例 $3$

见附件中的 ex_tourist3.inex_tourist3.ans

该样例满足子任务 $2$ 的约束。

样例 $4$

见附件中的 ex_tourist4.inex_tourist4.ans

该样例满足子任务 $3$ 的约束。

样例 $5$

见附件中的 ex_tourist5.inex_tourist5.ans

该样例满足子任务 $4$ 的约束。

样例 $6$

见附件中的 ex_tourist6.inex_tourist6.ans

该样例满足子任务 $5$ 的约束。

附件

数据范围

对于所有数据,保证 $1 \le n \le 5 \times 10^5$,$1 \le q \le 5 \times 10^5$,各个景点之间构成一棵树。

子任务编号 分值 $n \le$ $q \le$ 特殊性质
$1$ $20$ $500$ $500$
$2$ $20$ $10^5$ $1$
$3$ $20$ $10^5$ $10^5$ 景点构成一条链
$4$ $20$ $10^5$ $10^5$
$5$ $20$ $5 \times 10^5$ $5 \times 10^5$