模板—tarjan求割边
int dfn[MAXN],low[MAXN],cnt; void tarjan(int x,int edg) { low[x]=dfn[x]=++cnt; for(int i=f(x);i;i=n(i)) if(!dfn[v(i)]) { tarjan(v(i),i); low[x]=min(low[x],low[v(i)]); if(low[v(i)]>dfn[x]) isbridge[i]=isbridge[i^1]=1; } else if(i!=(edg^1)) low[x]=min(low[x],dfn(v(i))); }
波澜前,面不惊。