AT_ddcc2017_final_e 足のばし
题目描述
高橋君有一个由 $N$ 个顶点组成的树状毛绒玩具。顶点编号为 $1, 2, ..., N$。
第 $i$ 条边连接顶点 $a_i$ 和 $b_i$,长度为 $1$。
我们定义 ${\rm dist}(u, v)$ 为顶点 $u$ 到顶点 $v$ 的最短距离。那么,这棵树的直径为 ${\rm max}_{1 \leq u < v \leq N}({\rm dist}(u, v))$。
青木君对这只毛绒玩具做了一些恶作剧,每次选择一条边,并将其长度增加 $1$。已知恶作剧的次数可能为 $K_1, K_2, ..., K_Q$ 其中之一。
另外,青木君更喜欢直径较小的树,所以他总是让最终树的直径尽可能小。
请分别对于每一个恶作剧次数 $K_1, K_2, ..., K_Q$,输出所有恶作剧结束后树的直径。
输入格式
输入以以下格式从标准输入读入。
> $N$
> $a_1$ $b_1$
> $a_2$ $b_2$
> $\vdots$
> $a_{N-1}$ $b_{N-1}$
> $Q$
> $K_1$ $K_2$ $\cdots$ $K_Q$
输出格式
输出 $Q$ 行。第 $i$ 行输出当恶作剧次数为 $K_i$ 时,树的最终直径。
说明/提示
### 限制条件
- $3 \leq N \leq 200,\!000$
- $1 \leq a_i, b_i \leq N$
- 输入数据保证构成一棵树
- $1 \leq Q \leq 200,\!000$
- $0 \leq K_1 < K_2 < \cdots < K_Q \leq 10^{18}$
由 ChatGPT 5 翻译