我有以下图表:
最佳解决方案是从顶点 (3) 开始 dfs,然后我将得到一个分量,但是当我们从顶点 (1) 开始 dfs 时,则 (3) 我将得到两个分量。问题是:我想知道这个图中有多少个分量?或者以其他方式,覆盖所有图形所需的最少 dfs 数量是多少?
这样做所需的算法是什么?
我知道这是一个旧线程,但添加我如何解决问题会很有帮助:
1 - 找到图中的强连通分量 (SCC),对于每个 SCC,我们可以将其替换为代表该 SCC 的单个节点。
2 - 现在,通过查看新图中节点的度数,我们可以知道可以运行 DFS 并覆盖所有其他节点的最小节点数,因此我们可以从度数为零的节点开始DFS。