Given a directed graph and a node X. The task is to find the minimum number of edges that must be added to the graph such that any node can be reachable from the given node.
Input: X = 0
Input: X = 4
Approach: First, let’s mark all the vertices reachable from X as good, using a simple DFS. Then, for each bad vertex (vertices which are not reachable from X) v, count the number of bad vertices reachable from v (it also can be done by simple DFS). Let this number be cntv. Now, iterate over all bad vertices in non-increasing order of cntv. For the current bad vertex v, if it is still not marked as good, run a DFS from it, marking all the reachable vertices as good, and increase the answer by 1 (in fact, we are implicitly adding the edge (s, v)). It can be proved that this solution gives an optimal answer.
Below is the implementation of the above approach:
- Minimum cost path from source node to destination node via an intermediate node
- Find all reachable nodes from every node present in a given set
- Shortest path with exactly k edges in a directed and weighted graph
- Assign directions to edges so that the directed graph remains acyclic
- Maximum number of edges to be added to a tree so that it stays a Bipartite graph
- Right sibling of each node in a tree given as array of edges
- Minimum number of edges between two vertices of a Graph
- Minimum number of edges between two vertices of a graph using DFS
- k'th heaviest adjacent node in a graph where each vertex has weight
- Level of Each node in a Tree from source node (using BFS)
- Count single node isolated sub-graphs in a disconnected graph
- Maximum edges that can be added to DAG so that is remains DAG
- Hierholzer's Algorithm for directed graph
- Euler Circuit in a Directed Graph
- Detect Cycle in a Directed Graph
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.