您的位置:首页 > Web前端

hdu 1596 find the safest road (floyd)

2013-08-10 10:20 344 查看
我去,水过的!

C++提交4000ms,G++大于4500ms,擦!

水的!!!!!

#include<stdio.h>

#define max(a,b) a>b?a:b

double map[1010][1010];

int main()

{

int n,i,j,k,t;

int start,end;

while(scanf("%d",&n)!=EOF)

{

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

scanf("%lf",&map[i][j]);

for(k=1;k<=n;k++)

for(i=1;i<=n;i++)

{

if(map[i][k]>0.00000001)

for(j=1;j<=n;j++)

{

map[i][j]=max(map[i][j],map[i][k]*map[k][j]);

}

}

scanf("%d",&t);

for(i=0;i<t;i++)

{

scanf("%d%d",&start,&end);

if(map[start][end]<0.00000001)

printf("What a pity!\n");

else

printf("%.3lf\n",map[start][end]);

}

}

return 0;

}

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1596
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: