A bridge is an edge in graph on whose removal, the graph split into multiple components. We need to detect which edge is a bridge. It is done by maintaining 2 vectors:
Atriculation point is a point on whose removal, the graph breaks into multiple components. Concepts used to find articulation point involve similar concepts to bridges. We use the same 2 vectors as in bridges, except we declare a node articulation point if the min node, its neighbors can reach is that node itself (dfs_num[neighbor] == node). Therefore new condition for articulation point becomes dfs_low[neighbor] >= node. One more condition that comes into play is if parent is connected to multiple children components, then also it is an articulation point.
a Strongly connected component in a directed graph is a subset of vertices where every vertex in given subset is reachable from any other vertex in the given subset.
To get all strongly connected componets of a graph we use Kosaraju's algorithm.
Next lesson