模板floyed


// 顶点从1 开始 floyed
void floyed()
{
int i,j,k;
for(k=1;k<=n;k++)
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(g[i][j]>g[i][k]+g[k][j])
g[i][j]=g[i][k]+g[k][j] ;
}
}

// 顶点从0 开始 floyed
void floyed()
{
int i,j,k;
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j]>a[i][k]+a[k][j])
a[i][j]=a[i][k]+a[k][j] ;
}
}

原文地址:https://www.cnblogs.com/2014acm/p/3905651.html