QOJ.ac

QOJ

حد الوقت: 10 s حد الذاكرة: 512 MB مجموع النقاط: 100

#6473. 猫和老鼠

الإحصائيات

猫和老鼠在一棵有 $N$ 个顶点的无向树上玩游戏,顶点编号从 $1$ 到 $N$。猫最初位于顶点 $1$,老鼠位于顶点 $M$。树的每条边都有一个唯一的奶酪数量(从 $1$ 到 $N-1$)。猫和老鼠轮流移动,老鼠先走。在老鼠的回合,它会从当前顶点移动到相邻顶点,选择的是连接当前顶点且奶酪数量最大的边。如果猫位于老鼠选择的那个顶点,老鼠则会移动到第二好的相邻顶点(即连接当前顶点且奶酪数量第二大的边)。如果没有第二个可移动的顶点,则游戏结束,猫获胜。在猫的回合,猫可以移动到任何相邻顶点,也可以留在当前顶点。

你控制猫,目标是尽快赢得游戏。请找出在猫采取最优策略的情况下,老鼠在猫获胜前移动的最少步数。

输入格式

输入文件的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。 每个测试用例的第一行包含 $N$ 和 $M$。接下来的 $N-1$ 行,每行包含两个数字 $u$ 和 $v$,表示顶点 $u$ 和 $v$ 之间有一条边。这些边中的第 $k$ 条($1 \le k \le N-1$)的奶酪数量等于 $k$。

输出格式

对于每个测试用例,按照输入顺序,输出一行,包含猫获胜前老鼠移动的最少步数(假设猫采取最优策略)。如果猫无法赢得游戏,则输出 $-1$。

数据范围

  • $2 \le N \le 50000$
  • $1 \le T \le 100$
  • $1 \le u, v \le N$
  • 每个测试用例给出的图都是一棵树。
  • 边上的奶酪不会被老鼠吃掉。因此,在整个游戏过程中,一条边的奶酪数量始终保持不变。
  • 猫可以移动到与老鼠相同的顶点。这种移动不会伤害老鼠,游戏正常继续。

样例

样例输入 1

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

样例输出 1

6
4
4

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.