tarjan核心代码部分有两种写法都能过
一种是大于的
for(int i=h[u];i;i=e[i].nxt){
int v=e[i].v;
if(v==fa) continue;
if(!dfn[v]){
tar(v,u);
low[u]=min(low[u],low[v]);
if(low[v]>dfn[u]){
ans[++cnt]={min(u,v),max(u,v),0};
}
}
else if(v!=fa){
low[u]=min(low[u],dfn[v]);
}
}
一种是等于的
for(int i:G[u]){
if(i==fa) continue;
if(!dfn[i]){
tarjan(i,u);
low[u]=min(low[u],low[i]);
if(low[i]==dfn[i]) Orin(u,i);
}else low[u]=min(low[u],dfn[i]);
}
两个都能过 求问为什么