如何判断顶点 i到j是否存在一条从i到j的路径?
传递闭包算法
代码
for (int i=1;i<=n;i++) can[i][i]:=true;
for (int k=1;k<=n;k++)
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
can[i][j] ||= (can[i][k] && can[k][j]);
如何判断顶点 i到j是否存在一条从i到j的路径?
for (int i=1;i<=n;i++) can[i][i]:=true;
for (int k=1;k<=n;k++)
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
can[i][j] ||= (can[i][k] && can[k][j]);