#P1087. 【模板】割点与割边

    ID: 99 传统题 1000ms 256MiB 尝试: 0 已通过: 0难度: 普及+/提高− ← 上一题 下一题 → 随机一题 上传者: 标签 模板题 割点与桥 割点割边 图论 深度优先搜索 DFS
显示设置

【模板】割点与割边

题目描述

给定一张 nn 个点、mm 条边的无向图,结点编号 1∼n1\sim n。图中没有自环,但可能有重边;图不一定连通。

  • 割点:删掉该点以及与它相连的所有边后,图的连通块个数增加。
  • 割边(桥):删掉该边后,图的连通块个数增加。

请分别求出图中所有割点和所有割边。

输入格式

第一行两个整数 n,mn,m。

接下来 mm 行,每行两个整数 u,vu,v,表示一条连接 uu 与 vv 的无向边。

输出格式

第一行两个整数 c1,c2c_1,c_2,依次为割点个数与割边个数。

接下来 c1c_1 行,每行一个整数,为割点编号,按编号升序输出。

接下来 c2c_2 行,每行两个整数 u,vu,v(u<vu<v),为割边端点,先按 uu 升序、uu 相同时按 vv 升序输出。

输入输出样例 #1

输入 #1

4 3
1 2
2 3
3 4

输出 #1

2 3
2
3
1 2
2 3
3 4

说明

数据范围

  • 对于 100%100\% 的数据,1≤n≤2×1051\le n\le 2\times 10^5,0≤m≤5×1050\le m\le 5\times 10^5。