AT_abc414_f.[ABC414F] Jump Traveling

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一棵有 NN 个顶点的树,顶点编号为 11 到 NN,以及一个整数 KK。第 ii 条边连接顶点 uiu_i 和顶点 viv_i,是双向的。

你现在位于顶点 11。你可以重复进行如下操作 00 次或多次:

  • 从你当前所在的顶点,选择一个距离为 KK 的顶点,移动到该顶点。这里,两个顶点之间的距离指的是连接这两个顶点的简单路径上边的数量。

对于每个 k=2,…,Nk=2,\ldots,N,判断是否可以通过若干次操作移动到顶点 kk,如果可以,输出所需操作次数的最小值;否则输出 −1-1。

有 TT 个测试用例,请分别解答。

输入格式

输入以如下格式从标准输入读入。这里,casei\mathrm{case}_i 表示第 ii 个测试用例。

TT
case1\mathrm{case}_1
case2\mathrm{case}_2
⋮\vdots
caseT\mathrm{case}_T

每个测试用例的格式如下:

NN KK
u1u_1 v1v_1
u2u_2 v2v_2
⋮\vdots
uN−1u_{N-1} vN−1v_{N-1}

输出格式

输出 TT 行。第 ii 行为第 ii 个测试用例的答案,格式如下:

ans2\mathrm{ans}_2 ans3\mathrm{ans}_3 …\ldots ansN\mathrm{ans}_N

其中,ansi\mathrm{ans}_i 表示对于 k=ik=i 的答案。如果可以通过若干次操作移动到顶点 ii,输出最小操作次数,否则输出 −1-1。

输入输出样例

  • 输入#1

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

    输出#1

    -1 1 1 -1 2
  • 输入#2

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

    输出#2

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

说明/提示

限制条件

  • 1≤T≤1051\leq T\leq 10^5
  • 2≤N≤2×1052\leq N\leq 2\times 10^5
  • 1≤K≤201\leq K\leq 20
  • 1≤ui<vi≤N1\leq u_i< v_i\leq N
  • 给定的图为树
  • 所有测试用例中 NN 的总和不超过 2×1052\times 10^5
  • 输入均为整数

样例解释 1

本样例仅包含 11 个测试用例。与顶点 11 距离为 22 的顶点为 3,43,4,因此可以通过 11 次操作移动到这两个顶点。再从顶点 11 移动到顶点 44 后,从顶点 44 出发,距离为 22 的顶点为 66,因此可以通过 22 次操作移动到顶点 66。顶点 2,52,5 无论如何都无法通过操作到达。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页