/*
割边(桥):即在一个无向连通图中,如何删除某条边之后,图不在连通
如果low[v]和num[u]相等则表示还可以回到父亲,而low[v] > num[u]则表示连父亲都回不到了。
倘若顶点v不能回到祖先,也没有另外一条路能回到父亲,那么u-v这条边就是割边
实际应用中需要改为邻接表来存储图,时间复杂度为OM((N + M)),否则时间复杂度为O(N2)
*/
#include "stdio.h"
int n,m,e[9][9],root;
int num[9],low[9],index;
int min(int a,int b)
{
return a < b? a : b;
}
void dfs(int cur,int father)
{
int i;
index++;
num[cur] = index;
low[cur] = index;
for(i = 1;i <= n;i++)
{
if(e[cur][i] == 1)
{
if(num[i] == 0)