CF2227H Fallen Leaves

题目描述

Yousef 得到了一棵 $n$ 个顶点的树 $^{\text{∗}}$,顶点编号为 $1$ 到 $n$。 设 $S$ 为给定树的所有叶子节点 $^{\text{†}}$ 的集合(该集合由原始树确定,不会变化)。 Yousef 重复如下操作,直到未被选择的顶点数不超过 $1$: - 从 $S$ 中选出两个未被选择过的不同顶点 $u, v$。 - 将 $d(u, v)$ 加入总代价,其中 $d(u, v)$ 表示 $u$ 和 $v$ 间的简单路径上的边数。 - 将 $u$ 和 $v$ 标记为已选择。 你的任务是帮助 Yousef 计算在操作结束后,可能达到的最小总代价。 $^{\text{∗}}$ 一棵树是无环的连通无向图。 $^{\text{†}}$ 树的叶子节点是与至多一个其他顶点相连的顶点。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$)——表示测试用例的数量。接下来的 $t$ 个测试用例每个包括若干行。 每个测试用例的第一行包含一个整数 $n$($3 \le n \le 2 \cdot 10^5$)——表示树的顶点数。 随后 $n-1$ 行,每行两个整数 $u$ 和 $v$($1 \le u, v \le n$,$u \ne v$),表示有一条连接顶点 $u$ 和 $v$ 的边。保证给定的图是一棵树,没有自环或重边。 保证所有测试用例中 $n$ 之和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示操作结束后可能达到的最小总代价。

说明/提示

在第一个测试用例中,叶子集合 $S = \{1, 3, 4\}$。Yousef 可以这样操作: - 选择 $u = 1$,$v = 3$,此时 $d(1, 3) = 2$,Yousef 把 $2$ 加入总代价,并将 $1$ 和 $3$ 标记为已选择。 剩下一个顶点未被选择,过程终止,总代价为 $2$。可以证明 $2$ 是最小答案。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2227H/354f2dd0de52054f2da9921ffb63460abc60b1b6d11fbd2de90b77871e4f7690.png) 第一个测试用例的树。 在第二个测试用例中,叶子集合 $S = \{1, 3, 5, 6\}$。Yousef 可以这样操作: - 选择 $u = 1$,$v = 3$,$d(1, 3) = 2$,总代价加 $2$,$1$ 和 $3$ 标记已选择。 - 选择 $u = 5$,$v = 6$,$d(5, 6) = 2$,总代价再加 $2$,$5$ 和 $6$ 标记已选择。 不存在未被选择的顶点,过程终止,总代价为 $4$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2227H/25a03841bff6836275c1ecca3c1c59d51fef492621d7ce69331ccf75b8307f38.png) 第二个测试用例对应的树。 由 ChatGPT 5 翻译