给定一个有向图,对于给定图中的所有顶点对(i, j),找出一个顶点j是否可从另一个顶点i到达。这里的可达性是指从顶点i到j有一条路径。可达性矩阵称为图的传递闭包。
例如,考虑下面的图表
上述图的传递闭包为
1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1
该图以邻接矩阵的形式给出,例如'graph [V] [V]',其中如果从顶点i到顶点j存在边或i等于j,则graph [i] [j]为1,否则为graph [i][j] 为 0。可以使用
我们可以实验Floyd Warshall计算距离矩阵 dist[V][V] ,如果 dist[i][j] 是无穷大,则 j 不可达我。否则,j 是可达的并且 dist[i][j] 的值将小于 V。
对于这个特定的问题,我们可以在空间和时间方面对其进行优化,而不是直接使用 Floyd Warshall。以下是优化: