求桥:
1 void Tarjan(int u,int inedge){ 2 dfn[u] = low[u] = ++dfn_clock; 3 for(int i = h[u];i!=-1;i = e[i].nex){ 4 int v = e[i].to; 5 if(!dfn[v]){ 6 Tarjan(v,i); 7 low[u] = min(low[u],low[v]); 8 if(low[v] > dfn[u]) bridge[i] = bridge[i^1] = 1; 9 } 10 else if( i != (inedge^1) ) low[u] = min(low[u],dfn[v]); 11 } 12 }
例题:poj3352
原文:https://www.cnblogs.com/xiaobuxie/p/12606682.html