RT
他在更新low的时候一定要判断下一个点是否是父节点吗?为什么?为啥我洛谷板子题没判断也过了。
void tarjan(int now,int root){
dfn[now]=low[now]=++dfn[0];
vis[now]=1;
for(int i=head[now];i!=-1;i=b[i].next){
if(!dfn[b[i].to]){
son[now]++;
tarjan(b[i].to,root);
low[now]=min(low[now],low[b[i].to]);
if(low[b[i].to]>=dfn[now]&&now!=root)g[now]=1;
}
else
low[now]=min(low[now],dfn[b[i].to]);
}
vis[now]=0;
}