CF2253E Diameter Intersections
题目描述
给定一棵有 $n$ 个节点的树。树的直径是指树中长度最长的简单路径。路径的长度是其包含的边的数量。已知给定的树的直径长度是奇数。
称一个整数 $k$ 是“美丽的”,如果存在两条树的直径(可以有相同的两个端点,也允许选择同一条直径),使得它们的交集中恰好包含 $k$ 条边。
请找出所有美丽的 $k$ 值,并按照递增顺序输出。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例按照以下格式给出:
- 第一行包含一个整数 $n$($2 \le n \le 10^6$),表示树的节点数;
- 接下来的 $n-1$ 行,每行包含两个整数 $u$ 和 $v$($1 \le u, v \le n$,$u \ne v$),表示节点 $u$ 与节点 $v$ 之间有一条边。
输入额外保证:
- 所有测试用例的 $n$ 之和不超过 $10^6$;
- 每个测试用例给出的边集保证构成一棵直径长度为奇数的树。
输出格式
对于每个测试用例,输出一行,先输出一个整数 $m$,表示美丽的 $k$ 的数量;然后输出所有美丽的 $k$ 值,按升序排列。
说明/提示
考虑前面三个示例:
- 在第一个示例中,选取直径 $(1, 2)$ 和 $(1, 2)$,交集包含 $k=1$ 条边;
- 在第二个示例中,选取直径 $(1, 4)$ 和 $(4, 1)$,交集包含 $k=3$ 条边;
- 在第三个示例中,选取直径 $(6, 4)$ 和 $(3, 5)$,交集包含 $k=1$ 条边;选取 $(6, 4)$ 和 $(4, 5)$,交集包含 $k=2$ 条边;选取 $(6, 4)$ 和 $(6, 4)$,交集包含 $k=3$ 条边。
由 ChatGPT 5 翻译