QOJ.ac

QOJ

时间限制: 2 s 内存限制: 1024 MB 总分: 100

#15120. 游戏玩家 Bafuko

统计

Bafuko 非常喜欢打游戏!她最近正在游玩最新作《Young Bracelet – Light of the Saint Grass》。作为一名资深玩家,她想要探索地图上的每一个角落。

Bafuko 的参考图片 (X @bafuko_seiso)

地图可以表示为一棵拥有 $n$ 个结点的树,结点编号为 $1$ 到 $n$。树上的每条边权重均为 $1$。此外,还有一个特殊的传送门连接两个指定的不同结点 $x$ 和 $y$。该传送门可以使用任意多次,并允许在 $x$ 和 $y$ 之间瞬间传送,且代价为 $0$。

Bafuko 希望通过一次巡回(tour)来访问树中的每个结点至少一次。一次巡回是指一个由相邻结点组成的序列,它始于一个选定的结点,终于一个选定的结点(可能与起点相同),并且访问了树中的每个结点至少一次。她可以自由选择起点和终点。在巡回过程中,如果需要,边和传送门都可以被多次经过。巡回的代价定义为所有经过的边和传送门的使用代价之和,其中重复经过的边会被多次计算。

你的任务是确定这样一次巡回的最小总代价。

输入格式

每个测试文件包含多个测试用例。第一行包含测试用例的数量 $t$。接下来是每个测试用例的描述。

每个测试用例的第一行包含三个整数 $n$、$x$ 和 $y$,分别表示树中的结点数以及由传送门连接的两个结点。

接下来的 $n - 1$ 行,第 $i$ 行包含两个整数 $u_i, v_i$,表示结点 $u_i$ 和 $v_i$ 之间的一条边。

输出格式

对于每个测试用例,在新的一行中输出一个整数,表示访问树中每个结点至少一次的巡回的最小总代价。

数据范围

  • $1 \le t \le 10^4$
  • $2 \le n \le 5 \times 10^5$
  • $1 \le x, y \le n$ 且 $x \neq y$。
  • $1 \le u_i, v_i \le n$ 且 $u_i \neq v_i$。
  • 保证给定的边构成一棵树。
  • 保证所有测试用例中 $n$ 的总和不超过 $5 \times 10^5$。

样例

输入样例 1

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

输出样例 1

2
8
7

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.