SCCとは強連結成分のこと. 名前がかっこいいね.

雑な説明

どんなDirected GraphもSCCを求めればDAGになる. 閉路を一つの頂点とみなす.

ついでにDAGのトポロジカルソートも同時に行える.

丁寧な説明

有向グラフにおいてお互いに行き来が可能な頂点の集合.

具体的な方法

有向グラフ $G$ を考える. また逆グラフを $G^T$ と表記する.

  1. $G$ の任意の頂点 $v$ から帰りがけDFSをして0からラベル付けをしていく.
  2. 1を未探索の頂点がなくなるまで繰り返す.
  3. $G^T$ に上記の処理でつけたラベルを移す.
  4. $G^T$の探索を行う.

簡単な説明

1と2でラベル付け

4での $G^T$ の探索

参考

https://hkawabata.github.io/technical-note/note/Algorithm/graph/scc.html