学习时,网上有两种写法:
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].to;
if(!dfn[v]){
tarjan(v);
low[u]=min(low[u],low[v]);
}
else if(flag[v]){
low[u]=min(low[u],low[v]);//不同点
}
}
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].to;
if(!dfn[v]){
tarjan(v);
low[u]=min(low[u],low[v]);
}
else if(flag[v]){
low[u]=min(low[u],dfn[v]);//不同点
}
}
这两种写法哪种是对的,求解答!感谢!