#include <cstdio>
#include <memory>
const int N = 20;
double c[N][N];
int main()
{
int n;
int i, j;
double num;
while(scanf("%d", &n)==1&&n)
{
memset(c, 0, sizeof(c));
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%lf", &num);
if(i==j)
c[i][j] = 1;
else if(num>0)
{
if(!(c[i][j]>0))
c[i][j] = num;
if(!(c[j][i]>0))
c[j][i] = 1.0/num;
}
}
}
for(int p=0; p<n; p++) //Floyd
{
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(p!=i&&p!=j&&c[i][j]>0&&c[i][p]>0)
{
if(!(c[j][p]>0))
c[j][p] = c[i][p]/c[i][j];
if(!(c[p][j]>0))
c[p][j] = 1.0/c[j][p];
}
}
}
}
for(i=0; i<n; i++)
{
printf("%.2lf", c[i][0]);;
for(j=1; j<n; j++)
printf(" %.2lf", c[i][j]);
putchar('\n');
}
putchar('\n');
}
return 0;
}
2003(Floyd)
最新推荐文章于 2021-02-28 01:00:26 发布