#abc251f. [abc251_f]Two Spanning Trees

[abc251_f]Two Spanning Trees

问题描述

给定一个具有NN个顶点和MM条边的无向图GGGG简单的(没有自环和多条边)且连通的

对于i=1,2,,Mi=1,2,\ldots,M,第ii条边是连接顶点uiu_iviv_i的无向边{ui,vi}\lbrace u_i, v_i \rbrace

构造两个满足以下两个条件的图GG的生成树T1T_1T2T_2。(T1T_1T2T_2不一定要是不同的生成树。)

  • T1T_1满足以下条件。

    如果我们将T1T_1视为以顶点11为根的树,则对于GG中不包含在T1T_1中的任意边{u,v}\lbrace u, v \rbraceuuvv中的一个是另一个在T1T_1中的祖先。

  • T2T_2满足以下条件。

    如果我们将T2T_2视为以顶点11为根的树,则GG中不存在不包含在T2T_2中的边{u,v}\lbrace u, v \rbrace,使得uuvv中的一个是另一个在T2T_2中的祖先。

我们可以证明总是存在满足上述条件的T1T_1T2T_2

约束条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • $N-1 \leq M \leq \min\lbrace 2 \times 10^5, N(N-1)/2 \rbrace$
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 输入中的所有值均为整数。
  • 给定的图是简单且连通的。

输入

输入以以下格式从标准输入给出:

NN MM u1u_1 v1v_1 u2u_2 v2v_2 \vdots uMu_M vMv_M

输出

按以下格式打印(2N2)(2N-2)行,以输出T1T_1T2T_2。具体地说,

  • 11到第(N1)(N-1)行应包含T1T_1中包含的(N1)(N-1)个无向边$\lbrace x_1, y_1 \rbrace, \lbrace x_2, y_2 \rbrace, \ldots, \lbrace x_{N-1}, y_{N-1} \rbrace$,每行一条边。
  • NN到第(2N2)(2N-2)行应包含T2T_2中包含的(N1)(N-1)个无向边$\lbrace z_1, w_1 \rbrace, \lbrace z_2, w_2 \rbrace, \ldots, \lbrace z_{N-1}, w_{N-1} \rbrace$,每行一条边。

可以按任意顺序打印每个生成树中的边。此外,可以以任意顺序打印每条边的端点。

x1x_1 y1y_1 x2x_2 y2y_2 \vdots xN1x_{N-1} yN1y_{N-1} z1z_1 w1w_1 z2z_2 w2w_2 \vdots zN1z_{N-1} wN1w_{N-1}


示例输入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

上述示例输出中,T1T_1是包含55条边$\lbrace 1, 4 \rbrace, \lbrace 4, 3 \rbrace, \lbrace 5, 3 \rbrace, \lbrace 4, 2 \rbrace, \lbrace 6, 2 \rbrace$的GG的生成树。T1T_1满足问题陈述中的条件。事实上,对于GG中不包含在T1T_1中的每条边:

  • 对于边{5,1}\lbrace 5, 1 \rbrace,顶点1155的祖先;
  • 对于边{1,2}\lbrace 1, 2 \rbrace,顶点1122的祖先;
  • 对于边{1,6}\lbrace 1, 6 \rbrace,顶点1166的祖先。

T2T_2是包含55条边$\lbrace 1, 5 \rbrace, \lbrace 5, 3 \rbrace, \lbrace 1, 4 \rbrace, \lbrace 2, 1 \rbrace, \lbrace 1, 6 \rbrace$的GG的另一个生成树。T2T_2满足问题陈述中的条件。事实上,对于GG中不包含在T2T_2中的每条边:

  • 对于边{4,3}\lbrace 4, 3 \rbrace,顶点44不是顶点33的祖先,反之亦然;
  • 对于边{2,6}\lbrace 2, 6 \rbrace,顶点22不是顶点66的祖先,反之亦然;
  • 对于边{4,2}\lbrace 4, 2 \rbrace,顶点44不是顶点22的祖先,反之亦然。

示例输入2

4 3
3 1
1 2
1 4

示例输出2

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

TTGG的唯一生成树,包含33条边$\lbrace 1, 2 \rbrace, \lbrace 1, 3 \rbrace, \lbrace 1, 4 \rbrace$。由于TT中包含GG的所有边,显然TT满足T1T_1T2T_2的条件。