POJ 2253

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cmath>
 4 #include <cstring>
 5 #include <algorithm>
 6 #include <queue>
 7 #include <stack>
 8 #include <vector>
 9 #include <iomanip>
10 #include <climits>
11 using namespace std;
12 int x[300],y[300],n;
13 double map[300][300];
14 void floyd()
15 {
16     for(int k=0;k<n;k++)
17         for(int i=0;i<n;i++)
18             for(int j=0;j<n;j++)
19                 map[i][j]=min(map[i][j],max(map[i][k],map[k][j]));
20 }
21 int main(int argc, char *argv[])
22 {
23     int ans=0;
24     while(scanf("%d",&n)!=EOF)
25     {
26         if(n==0)
27         break;
28         ans++;
29         for(int i=0;i<n;i++)
30             scanf("%d%d",&x[i],&y[i]);
31          for(int i=0;i<=n;i++)
32          {
33              for(int j=0;j<=n;j++)
34              if(i==j)
35              map[i][j]=0;
36              else
37              map[i][j]=1e9;
38          }
39           for(int i=0; i<n; i++)
40                for(int j=i+1; j<n; j++)
41                  map[i][j]=map[j][i]=sqrt((double)(x[i]-x[j])*(x[i]-x[j])*1.000+(double)(y[i]-y[j])*(y[i]-y[j])*1.000);
42           floyd();
43           printf("Scenario #%d\n",ans);
44           printf("Frog Distance = %.3lf\n\n",map[0][1]);
45     }
46     return 0;
47 }

 

posted @ 2018-10-13 23:21  huluxin  阅读(98)  评论(0编辑  收藏  举报