Tarjan总结

懒惰的大鸽子$HellPix$来更博了。

$tarjan$三种运用:

  • 有向图的强连通分量:$dfn[x]=low[x]$,把栈中元素弹出,直到弹出$x$。缩点双成为一个$DAG$,应用:缩点$dp$
  • 无向图的点双联通分量:$low[v]>=dfn[u]$,把栈中元素弹出,直到弹出$v$(此时,$u$也属于这个点双,但是因为$u$也有可能属于别的点双,所以要把$u$保留在栈中)
  • 无向图的边双联通分量:$low[v]>dfn[u]$,则$(u,v)$为割边,$dfn[x]=low[x]$时弹出(私以为,无向图边双就是相当于有向图的强分),缩边双成为一棵树。
posted @ 2019-07-27 21:51  HellPix  阅读(144)  评论(0编辑  收藏  举报