https://www.luogu.com.cn/record/67926925
这是我之前的提交记录,神奇的是:
for(int i=head[u];i;i=e[i].next){
int v=e[i].to;
if(!dfn[v]){
Tarjan(u,v);
son++;
low[u]=min(low[u],low[v]);
if(fa&&low[v]>=dfn[u]) cut[u]=1;
}
else low[u]=min(low[u],dfn[v]);
}
发现最后一个else后面并没有判断fa,但是过了。为什么?