做这道题的时候,我把标准tarjan改了一下
本来是这样的
for(int i=h[x];i;i=nxt[i]){
if(!dfn[to[i]]){
tarjan(to[i]);
low[x]=min(low[x],low[to[i]]);
}
else if(in_stack[to[i]]) low[x]=min(low[x],dfn[to[i]]);
}
改成了这样
for(int i=h[x];i;i=nxt[i]){
if(!dfn[to[i]]){
tarjan(to[i]);
low[x]=min(low[x],low[to[i]]);
}
else if(in_stack[to[i]]) low[x]=min(low[x],low[to[i]]);//这句话做出了更改
}
发现也能过这道题。这是为什么啊。。是因为这样写本来就是对的吗?