#aBC362F. [ABC362F] Perfect Matching on a Tree

[ABC362F] Perfect Matching on a Tree

AT_abc362_f [ABC362F] Perfect Matching on a Tree

题目描述

给定一棵有 NN 个顶点的树 TTTT 的顶点编号为 11NN,第 ii 条边(1iN11 \leq i \leq N-1)连接顶点 uiu_i 和顶点 viv_i,且为双向边。

利用 TT,定义一个 NN 个顶点的完全图 GG,具体如下:

  • GG 中顶点 xx 与顶点 yy 之间的边的权值 w(x,y)w(x, y) 定义为 TT 中顶点 xx 与顶点 yy 之间的最短距离。

请在 GG 中求出一个最大权值最大匹配。即,找出 N/2\lfloor N/2 \rfloor 个顶点对的集合 $M = \{(x_1, y_1), (x_2, y_2), \dots, (x_{\lfloor N/2 \rfloor}, y_{\lfloor N/2 \rfloor})\}$,使得每个顶点 1,2,,N1, 2, \dots, NMM 中出现次数至多 11 次,并且 $\displaystyle \sum_{i=1}^{\lfloor N/2 \rfloor} w(x_i, y_i)$ 最大。

输入格式

输入通过标准输入给出,格式如下:

NN
u1u_1 v1v_1
u2u_2 v2v_2
\vdots
uN1u_{N-1} vN1v_{N-1}

输出格式

请输出一个满足条件的匹配 $M = \{(x_1, y_1), (x_2, y_2), \dots, (x_{\lfloor N/2 \rfloor}, y_{\lfloor N/2 \rfloor})\}$,格式如下。如果有多个答案,输出其中任意一个均可。

x1x_1 y1y_1
x2x_2 y2y_2
\vdots
xN/2x_{\lfloor N/2 \rfloor} yN/2y_{\lfloor N/2 \rfloor}

输入输出样例 #1

输入 #1

4
1 2
2 3
3 4

输出 #1

2 4
1 3

输入输出样例 #2

输入 #2

3
1 2
2 3

输出 #2

1 3

说明/提示

数据范围

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1ui<viN1 \leq u_i < v_i \leq N
  • 输入的图保证是一棵树
  • 所有输入均为整数

样例解释 1

TT 中,顶点 2244 之间的距离为 22,顶点 1133 之间的距离为 22,因此匹配 {(2,4),(1,3)}\{(2,4),(1,3)\} 的权值为 44。不存在权值大于 44 的匹配,因此这是最大权值最大匹配之一。你也可以输出 2 3 1 4 等其它答案。

样例解释 2

TT 中,顶点 1133 之间的距离为 22,因此匹配 {(1,3)}\{(1,3)\} 的权值为 22。不存在权值大于 22 的匹配,因此这是最大权值最大匹配之一。你也可以输出 3 1 等其它答案。

由 ChatGPT 4.1 翻译