无向图连通图(割) int bridge,edge[v][v],ans[v],prve[v],vis[v];// vis[i] 0为尚未访问 1为正在访问 2已经访问//ans[i] 该点能到达的最小序号// pre[i] 该点的序号// INIT: edge[][]邻接矩阵;vis[],pre[],anc[],deg[]置为0; //k=deg[0], deg[i]+1(i=1…n-1) 为删除该节点后得到的连通图个数 // 注意:0作为根比较特殊!void dfs(int cur,int father,int dep,int n){ int cnt = 0; vis[cur] = 1; pre[cur] = ans[cur] = dep; for(int i=0;i1)//父节点并且分支个数大于1 || (cnt!=0 && ans[i]>=pre[cur]) ++deg[cur]; } } vis[cur] =2;}