AT_abc392_e [ABC392E] Cables and Servers
题目描述
有编号从 \(1\) 到 \(N\) 的 \(N\) 台服务器和编号从 \(1\) 到 \(M\) 的 \(M\) 根电缆。
电缆 \(i\) 双向连接服务器 \(A_i\) 和服务器 \(B_i\)。
通过进行以下操作(可以是 \(0\) 次),使得所有服务器之间都能通过电缆相互连接:
- 操作:选择一根电缆,将其一端连接到另一台服务器
请找出操作的最小次数,并输出达到最小次数的操作序列。
输入格式
输入通过标准输入给出,格式如下:
\(N\) \(M\)
\(A_1\) \(B_1\)
\(A_2\) \(B_2\)
\(\vdots\)
\(A_M\) \(B_M\)
输出格式
设操作的最小次数为 \(K\),输出 \(K+1\) 行。
第一行输出 \(K\)。
接下来的 \(i+1\) 行(\(1 \leq i \leq K\))输出第 \(i\) 次操作中选择的电缆编号、操作前连接的服务器编号、操作后连接的服务器编号,用空格分隔。
如果有多个满足条件的解,输出任意一个均可。
输入输出样例 #1
输入 #1
4 5
1 1
1 2
2 1
3 4
4 4
复制
输出 #1
1
1 1 3
复制
输入输出样例 #2
输入 #2
4 3
3 4
4 1
1 2
复制
输出 #2
0
复制
输入输出样例 #3
输入 #3
5 4
3 3
3 3
3 3
3 3
复制
输出 #3
4
1 3 5
2 3 4
3 3 2
4 3 1
复制
说明/提示
约束
- \(2 \leq N \leq 2 \times 10^5\)
- \(N-1 \leq M \leq 2 \times 10^5\)
- \(1 \leq A_i, B_i \leq N\)
- 输入均为整数
样例解释 1
将电缆 \(1\) 连接服务器 \(1\) 的一端改为连接服务器 \(3\),可以使所有服务器通过电缆相互连接。
其他操作如“将电缆 \(5\) 连接服务器 \(4\) 的一端改为连接服务器 \(1\)”或“将电缆 \(2\) 连接服务器 \(2\) 的一端改为连接服务器 \(3\)”也能使所有服务器通过电缆相互连接,因此这些操作也被视为正确答案。
样例解释 2
有时可能不需要进行任何操作。
样例解释 3
需要多次操作才能将所有服务器连接起来。