#P16921. [JLCPC 2026] 拆分树

    ID: 17157 Type: RemoteJudge 8000ms 1024MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>吉林Special JudgeO2优化2026省赛/邀请赛

[JLCPC 2026] 拆分树

题目描述

tarjen\mathit{tarjen} 在玩把两棵树拼成一个图的游戏。他用两棵 nn 个点的树拼成了一个 nn 个点、m=2n−2m = 2n - 2 条边的无向无权图 G=(V,E)G = (V, E)。但是他发现他没法把这个图还原回两棵树了,请你帮帮他!

形式化地说,请你将所有边恰好分成两个集合 TT 和 E∖TE \setminus T,使得 TT 和 E∖TE \setminus T 都构成 GG 的一棵生成树。

你可以输出任意一种合法方案。保证合法方案一定存在。

注意:图中可能存在重边,但保证不存在自环。

输入格式

第一行有一个整数 TT(1≤T≤50001 \le T \le 5000),表示数据组数。接下来 TT 段,每段描述一组数据:

  • 第一行一个整数 nn(2≤n≤50002 \le n \le 5000),表示点数。
  • 接下来 2n−22n - 2 行,每行两个整数 u,vu, v(1≤u,v≤n1 \le u, v \le n,u≠vu \ne v),表示一条边。边按输入顺序从 11 到 2n−22n - 2 编号。

数据保证 ∑n\sum n 不超过 1000010000。

输出格式

对于每组数据,输出 n−1n - 1 个整数(升序),表示第一棵生成树包含的边的编号。剩余的 n−1n - 1 条边也应构成一棵生成树。

2
3
1 2
2 3
1 3
1 2
4
1 2
2 3
3 4
1 4
1 3
2 4
1 2
1 2 3

提示

对于第一组样例,边 {1,2}\{1, 2\} 对应 {(1,2),(2,3)}\{(1,2), (2,3)\},构成一棵生成树。剩余边 {3,4}\{3, 4\} 对应 {(1,3),(1,2)}\{(1,3), (1,2)\},也构成一棵生成树。

对于第二组样例,边 {1,2,3}\{1, 2, 3\} 对应 {(1,2),(2,3),(3,4)}\{(1,2), (2,3), (3,4)\},构成一棵生成树。剩余边 {4,5,6}\{4, 5, 6\} 对应 {(1,4),(1,3),(2,4)}\{(1,4), (1,3), (2,4)\},也构成一棵生成树。