关于Tarjan算法取min的疑问
查看原帖
关于Tarjan算法取min的疑问
76226
yy1695651楼主2020/8/19 18:25

学习tarjan的时候发现一个疑问,当当前节点发现以前在栈中的节点时,大多写法是low[u] = min(low[u], dfn[v]);但为什么不能写成low[u] = min(low[u], low[v]);两种写法都能AC,向dalao请教下有什么区别?

for (register int edge = A.p[u]; edge > 0; edge = A.e[edge].nt) {
    int v = A.e[edge].b;
    if (dfn[v] == 0) {
        tarjan(v); low[u] = min(low[u], low[v]);
    }
    else if (vis[v] == 1) low[u] = min(low[u], low[v]);//此处
}
2020/8/19 18:25
加载中...