CF2033G.Sakurako and Chefir

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定一棵有 nn 个顶点的树,根节点为 11。Sakurako 在带着她的猫 Chefir 散步时分心了,Chefir 跑丢了。

为了帮助 Sakurako,Kosuke 记录了他的 qq 次猜测。在第 ii 次猜测中,他假设 Chefir 在顶点 viv_i 处迷路,并且有 kik_i 点体力。

此外,对于每一次猜测,Kosuke 假设 Chefir 可以沿着树的边任意次移动:

  • 如果从顶点 aa 移动到顶点 bb,且 aa 是 bb 的祖先,则体力不会减少;
  • 如果从顶点 aa 移动到顶点 bb,且 aa 不是 bb 的祖先,则 Chefir 的体力减少 11。

如果 Chefir 的体力为 00,则不能进行第二种类型的移动。

对于每一次猜测,你需要求出 Chefir 从顶点 viv_i 出发、拥有 kik_i 点体力时,能够到达的最远顶点的距离。

∗^* 如果从 bb 到根节点的最短路径经过 aa,则称 aa 是 bb 的祖先。

输入格式

第一行包含一个整数 tt(1≤t≤1041\le t\le 10^4),表示测试用例的数量。

每个测试用例描述如下:

  • 第一行包含一个整数 nn(2≤n≤2⋅1052 \le n \le 2 \cdot 10^5),表示树的顶点数。
  • 接下来的 n−1n-1 行,每行描述一条树的边。保证这些边构成一棵树。
  • 下一行包含一个整数 qq(1≤q≤2⋅1051\le q\le 2 \cdot 10^5),表示 Kosuke 的猜测次数。
  • 接下来的 qq 行,每行包含两个整数 viv_i、kik_i(1≤vi≤n,0≤ki≤n1\le v_i \le n, 0 \le k_i\le n)。

保证所有测试用例中 nn 的总和与 qq 的总和均不超过 2⋅1052\cdot 10^5。

输出格式

对于每个测试用例的每一次猜测,输出 Chefir 能够到达的最远顶点的距离。

输入输出样例

  • 输入#1

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

    输出#1

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

说明/提示

在第一个样例中:

  • 对于第一个询问,可以从顶点 55 走到顶点 33(此时体力减少 11 变为 00),然后可以走到顶点 44;
  • 对于第二个询问,从顶点 33 出发,体力为 11,只能到达顶点 22、33、44 和 55;
  • 对于第三个询问,从顶点 22 出发,体力为 00,只能到达顶点 22、33、44 和 55。

由 ChatGPT 4.1 翻译

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

首页