基本的なトピック

無向グラフ 有向グラフ
二部グラフ判定 UF, BFS, DFS x
s-tパス判定 UF, BFS, DFS BFS, DFS
連結か判定 UF, BFS, DFS BFS, DFS
連結成分数 UF, BFS, DFS BFS, DFS
サイクル検出 UF, BFS, DFS BFS, DFS
トポロジカルソート x BFS, DFS
頂点からの距離 BFS BFS
UF BFS DFS
二部グラフ判定 倍化する
二部グラフでないとは、長さが奇数の閉路を持つことであることを利用する。 距離の偶奇が矛盾しないか判定 距離の偶奇が矛盾しないか判定
s-tパス判定
連結か判定
連結成分数
サイクル検出 union 操作で変化がない→サイクルがある 行きがけで訪問しているが帰りがけで訪問していない点にたどり着いたら、サイクルあり 入次数0の点を除くのを繰り返して、点が残る場合サイクルあり
(サイクルの頂点はすべて入次数が1以上)
トポロジカルソート x 帰りがけ順の逆順を連結成分ごとに調べる 入次数0の点を除くのを繰り返す
頂点からの距離 x x

サイクル: すべて入次数が1以上 or すべて出次数が1以上

グラフ理論

Functional Graph

閉路検出