代码直接整合了求割点和割边:
//求无向连通图的割点和割边/桥
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
#define MAXN 1000
#define MAXM 10000
struct node{
int to;
int next;
}edge[MAXM];
int head[MAXN];
int cnt;
int n,m;
int index;//时间戳
int cut[MAXN];//存割点
int bridge[MAXN][MAXN];//存割边
int dfn[MAXN],low[MAXN];//dfn:时间戳;low:可以到达的 访问时间最早的 祖先(访问时间比自己早的节点看作自己的祖先)
void Init(){
cnt=0;
index=0;
memset(head,0,sizeof(head));
memset(edge,0,sizeof(edge));
memset(cut,0,s