AT_abc414_f [ABC414F] Jump Traveling

题目描述

给定一棵有 $N$ 个顶点的树,顶点编号为 $1$ 到 $N$,以及一个整数 $K$。第 $i$ 条边连接顶点 $u_i$ 和顶点 $v_i$,是双向的。 你现在位于顶点 $1$。你可以重复进行如下操作 $0$ 次或多次: - 从你当前所在的顶点,选择一个距离为 $K$ 的顶点,移动到该顶点。这里,两个顶点之间的距离指的是连接这两个顶点的简单路径上边的数量。 对于每个 $k=2,\ldots,N$,判断是否可以通过若干次操作移动到顶点 $k$,如果可以,输出所需操作次数的最小值;否则输出 $-1$。 有 $T$ 个测试用例,请分别解答。

输入格式

输入以如下格式从标准输入读入。这里,$\mathrm{case}_i$ 表示第 $i$ 个测试用例。 > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 每个测试用例的格式如下: > $N$ $K$ > $u_1$ $v_1$ > $u_2$ $v_2$ > $\vdots$ > $u_{N-1}$ $v_{N-1}$

输出格式

输出 $T$ 行。第 $i$ 行为第 $i$ 个测试用例的答案,格式如下: > $\mathrm{ans}_2$ $\mathrm{ans}_3$ $\ldots$ $\mathrm{ans}_N$ 其中,$\mathrm{ans}_i$ 表示对于 $k=i$ 的答案。如果可以通过若干次操作移动到顶点 $i$,输出最小操作次数,否则输出 $-1$。

说明/提示

### 限制条件 - $1\leq T\leq 10^5$ - $2\leq N\leq 2\times 10^5$ - $1\leq K\leq 20$ - $1\leq u_i< v_i\leq N$ - 给定的图为树 - 所有测试用例中 $N$ 的总和不超过 $2\times 10^5$ - 输入均为整数 ### 样例解释 1 本样例仅包含 $1$ 个测试用例。与顶点 $1$ 距离为 $2$ 的顶点为 $3,4$,因此可以通过 $1$ 次操作移动到这两个顶点。再从顶点 $1$ 移动到顶点 $4$ 后,从顶点 $4$ 出发,距离为 $2$ 的顶点为 $6$,因此可以通过 $2$ 次操作移动到顶点 $6$。顶点 $2,5$ 无论如何都无法通过操作到达。 由 ChatGPT 4.1 翻译