我之前写的点双是这样的:
void tarjan(int u){ dfn[u]=low[u]=++idx; for(int i=h[u];i;i=e[i].nxt){ int v=e[i].v; if(!dfn[v]){ tarjan(v);low[u]=min(low[u],low[v]); if(dfn[u]<=low[v])br[i]=br[i^1]=1; } else low[u]=min(low[u],dfn[v]); } }
然而这显然是错的,尽管它 AC 了