http://acm.hdu.edu.cn/showproblem.php?pid=1596
题目 | 算法 | 备注 |
8600想回家,道路为安全系数,求回家的最大安全系数 | 弗洛伊德 | 加了两个优化之后就错了 |
#include<stdio.h>
double a[1001][1001];
int main()
{
int m,n,i,j,k,p,t;
while(~scanf("%d",&n))
{
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
scanf("%lf",&a[i][j]);
}
}
for(k=1; k<=n; k++)
{
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
if(a[i][j]<a[i][k]*a[k][j])
{
a[i][j]=a[i][k]*a[k][j];
}
}
}
}
scanf("%d",&m);
for(i=0; i<m; i++)
{
scanf("%d%d",&p,&t);
if(a[p][t]!=0)printf("%.3lf\n",a[p][t]);
else
{
printf("What a pity!\n");
}
}
}
return 0;
}