QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show] Hackable ✓

#2550. 狮子与斑马

Statistics

给定一棵包含 $N$ 个顶点的树。

在这棵树上进行一场捉人游戏。游戏包含若干轮。

每一轮中有两名玩家:狮子(捕捉方)和斑马(逃跑方)。

在每一轮开始时,斑马和狮子位于两个不同的顶点。狮子始终知道斑马的位置,并以每秒一条边的速度追赶它。斑马不知道狮子的位置,但始终知道它与狮子之间的距离。基于这些信息,斑马每秒钟做出以下两种选择之一: 花费 1 秒移动到任意相邻顶点。 在当前顶点停留 1 秒。

当斑马在某条边上或某个顶点与狮子相遇时,该轮结束。如果玩家沿着同一条边相向而行,相遇发生在他们开始移动后的 0.5 秒。斑马采取的策略是使其被狮子抓到的时间(在所有可能的狮子初始位置中取最小值)最大化。

给定 $Q$ 轮游戏。在第 $i$ 轮中,斑马从顶点 $v_i$ 开始,且与狮子的初始距离为 $d_i$。对于每一轮,请找出当双方都采取最优策略时,该轮结束的最短时间。

输入格式

第一行包含两个整数 $N$ 和 $Q$:树的顶点数和游戏轮数($2 \le N \le 10^5$,$1 \le Q \le 10^5$)。

接下来的 $N-1$ 行,每行包含两个整数 $a_i$ 和 $b_i$:表示树中相连的两个顶点。你可以假设给定的图是一棵树。

接下来的 $Q$ 行,每行描述一轮游戏,包含两个整数 $v_j$ 和 $d_j$($1 \le v_j \le N$,$1 \le d_j \le N-1$):斑马的起始顶点以及该轮开始时斑马与狮子之间的距离。你可以假设至少存在一个顶点 $w_j$ 使得 $v_j$ 与 $w_j$ 之间的距离等于 $d_j$。

输出格式

对于每个询问,输出一个整数:当双方都采取最优策略时,该轮结束的最短时间。

样例

样例输入 1

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

样例输出 1

4
1

样例输入 2

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

样例输出 2

2
5

说明

在样例 1 的第一轮开始时,斑马位于顶点 1,与狮子的距离为 4,因此我们可以推断狮子位于顶点 5。在这种情况下,最优策略是在顶点 1 尽可能久地停留,答案为 4。

在第二轮开始时,斑马位于顶点 3,与狮子的距离为 1,因此我们可以推断狮子要么位于顶点 2,要么位于顶点 4。

如果斑马向顶点 2 的方向移动,如果狮子从顶点 2 出发,狮子将在 0.5 秒后在边上与斑马相遇;如果狮子从顶点 4 出发,狮子将在 3 秒后在顶点 1 与斑马相遇。因此,在这种策略下,斑马被狮子抓到的最短时间为 0.5。

类似地,如果斑马向顶点 4 的方向移动,被狮子抓到的最短时间也是 0.5。

如果斑马停留在顶点 3,如果狮子从顶点 2 出发,它们将在 1 秒后相遇;如果狮子从顶点 4 出发,它们也将在 1 秒后相遇。因此,答案为 1。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1313EditorialOpenNew Editorial for Problem #2550Anonymous2026-03-20 21:07:11View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.