以边双为例:
if(!dfn[v])
{
tarjan(v,u);
low[u]=min(low[u],low[v]);
if(low[v]>dfn[u])
{
e[i].flag=e[i^1].flag=1;
}
}
else if(v!=fa)
{
low[u]=min(low[u],low[v]);
}
规范代码为
```cpp
if(!dfn[v])
{
tarjan(v,u);
low[u]=min(low[u],low[v]);
if(low[v]>dfn[u])
{
e[i].flag=e[i^1].flag=1;
}
}
else if(v!=fa)
{
low[u]=min(low[u],dfn[v]);
}
但是上者也获取了ac,求强连通分量也是类似,为什么他能正确呢?