void Floyd() { int i,j,k; for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(dist[i][k]+dist[k][j]<dist[i][j]) dist[i][j]=dist[i][k]+dist[k][j]; }
以上是floyd算法的精简形式。
floyd算法是经典的DP算法,具体如何推导现在还不是很了解有待进一步学习!
在这儿先介绍一下floyd算法的功能吧,知道一个图中任何两个节点之间的距离,然后求任意两点间的最短距离。