tarjan算法中比较dfn 还是low

tarjan算法中比较dfn 还是low_第1张图片
假设按以下顺序dfs,括号里表示的是回溯的过程

0-1-2-3-0(-3-2)-4-5-2(-5-4-2)-5(-2-1-0)-3(-0)

low和dfn比较:low[0]=low[1]=low[2]=low[3]=0

low[4]=low[5]=2

low和low比较:全部都是0…

问题出在low[5]上,如果是low[5]和dfn[2]比较low[5]=2,如果是和low[2]比较,low[5]=0

当low[5]=2的时候,2判断是割点,当low[5]=0的时候,2判断就不是割点了。

而实际上2是割点。
但是如果求强连通的时候大概影响无法体现 所以错误写法也是对的 但建议还是直接写dfn比较好

你可能感兴趣的:(辣鸡随写,图的联通)