#abc251f. [abc251_f]Two Spanning Trees
[abc251_f]Two Spanning Trees
问题描述
给定一个具有个顶点和条边的无向图。是简单的(没有自环和多条边)且连通的。
对于,第条边是连接顶点和的无向边。
构造两个满足以下两个条件的图的生成树和。(和不一定要是不同的生成树。)
-
满足以下条件。
如果我们将视为以顶点为根的树,则对于中不包含在中的任意边,和中的一个是另一个在中的祖先。
-
满足以下条件。
如果我们将视为以顶点为根的树,则中不存在不包含在中的边,使得和中的一个是另一个在中的祖先。
我们可以证明总是存在满足上述条件的和。
约束条件
- $N-1 \leq M \leq \min\lbrace 2 \times 10^5, N(N-1)/2 \rbrace$
- 输入中的所有值均为整数。
- 给定的图是简单且连通的。
输入
输入以以下格式从标准输入给出:
输出
按以下格式打印行,以输出和。具体地说,
- 第到第行应包含中包含的个无向边$\lbrace x_1, y_1 \rbrace, \lbrace x_2, y_2 \rbrace, \ldots, \lbrace x_{N-1}, y_{N-1} \rbrace$,每行一条边。
- 第到第行应包含中包含的个无向边$\lbrace z_1, w_1 \rbrace, \lbrace z_2, w_2 \rbrace, \ldots, \lbrace z_{N-1}, w_{N-1} \rbrace$,每行一条边。
可以按任意顺序打印每个生成树中的边。此外,可以以任意顺序打印每条边的端点。
示例输入1
6 8
5 1
4 3
1 4
3 5
1 2
2 6
1 6
4 2
示例输出1
1 4
4 3
5 3
4 2
6 2
1 5
5 3
1 4
2 1
1 6
上述示例输出中,是包含条边$\lbrace 1, 4 \rbrace, \lbrace 4, 3 \rbrace, \lbrace 5, 3 \rbrace, \lbrace 4, 2 \rbrace, \lbrace 6, 2 \rbrace$的的生成树。满足问题陈述中的条件。事实上,对于中不包含在中的每条边:
- 对于边,顶点是的祖先;
- 对于边,顶点是的祖先;
- 对于边,顶点是的祖先。
是包含条边$\lbrace 1, 5 \rbrace, \lbrace 5, 3 \rbrace, \lbrace 1, 4 \rbrace, \lbrace 2, 1 \rbrace, \lbrace 1, 6 \rbrace$的的另一个生成树。满足问题陈述中的条件。事实上,对于中不包含在中的每条边:
- 对于边,顶点不是顶点的祖先,反之亦然;
- 对于边,顶点不是顶点的祖先,反之亦然;
- 对于边,顶点不是顶点的祖先,反之亦然。
示例输入2
4 3
3 1
1 2
1 4
示例输出2
1 2
1 3
1 4
1 4
1 3
1 2
树是的唯一生成树,包含条边$\lbrace 1, 2 \rbrace, \lbrace 1, 3 \rbrace, \lbrace 1, 4 \rbrace$。由于中包含的所有边,显然满足和的条件。