CF2033G.Sakurako and Chefir
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一棵有 n 个顶点的树,根节点为 1。Sakurako 在带着她的猫 Chefir 散步时分心了,Chefir 跑丢了。
为了帮助 Sakurako,Kosuke 记录了他的 q 次猜测。在第 i 次猜测中,他假设 Chefir 在顶点 vi 处迷路,并且有 ki 点体力。
此外,对于每一次猜测,Kosuke 假设 Chefir 可以沿着树的边任意次移动:
- 如果从顶点 a 移动到顶点 b,且 a 是 b 的祖先,则体力不会减少;
- 如果从顶点 a 移动到顶点 b,且 a 不是 b 的祖先,则 Chefir 的体力减少 1。
如果 Chefir 的体力为 0,则不能进行第二种类型的移动。
对于每一次猜测,你需要求出 Chefir 从顶点 vi 出发、拥有 ki 点体力时,能够到达的最远顶点的距离。
∗ 如果从 b 到根节点的最短路径经过 a,则称 a 是 b 的祖先。
输入格式
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例描述如下:
- 第一行包含一个整数 n(2≤n≤2⋅105),表示树的顶点数。
- 接下来的 n−1 行,每行描述一条树的边。保证这些边构成一棵树。
- 下一行包含一个整数 q(1≤q≤2⋅105),表示 Kosuke 的猜测次数。
- 接下来的 q 行,每行包含两个整数 vi、ki(1≤vi≤n,0≤ki≤n)。
保证所有测试用例中 n 的总和与 q 的总和均不超过 2⋅105。
输出格式
对于每个测试用例的每一次猜测,输出 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
说明/提示
在第一个样例中:
- 对于第一个询问,可以从顶点 5 走到顶点 3(此时体力减少 1 变为 0),然后可以走到顶点 4;
- 对于第二个询问,从顶点 3 出发,体力为 1,只能到达顶点 2、3、4 和 5;
- 对于第三个询问,从顶点 2 出发,体力为 0,只能到达顶点 2、3、4 和 5。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?