POJ 2253

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<string.h>
using namespace std;
double mapp[205][205];
int n;
struct node{
	double x,y;
}str[205];

//int dis(double x1,double y1,double x2,double  y2)
//{
//	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
//}

void floyd()
{
	for(int k=1;k<=n;k++)
	{
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
			{
				if(mapp[i][k]<mapp[i][j]&&mapp[k][j]<mapp[i][j])
				{
					mapp[i][j]=mapp[j][i]=max(mapp[i][k],mapp[k][j]);
//					printf("%.3lf ",mapp[i][j]);
				}
			}
		}
	}
}
int main()
{
	int t=1;
	while(~scanf("%d",&n)&&n)
	{
		memset(mapp,0,sizeof(mapp));
		for(int i=1;i<=n;i++)
		{
			scanf("%lf %lf",&str[i].x,&str[i].y);
		}
		for(int i=1;i<=n;i++)
		{
			for(int j=i;j<=n;j++)
			{
				mapp[i][j]=mapp[j][i]=sqrt((str[i].x-str[j].x)*(str[i].x-str[j].x)+(str[i].y-str[j].y)*(str[i].y-str[j].y));
			}
		}
		floyd();
		printf("Scenario #%d
Frog Distance = %.3lf

",t++,mapp[1][2]);	
	}
	return 0;
}
原文地址:https://www.cnblogs.com/tianming1/p/13778706.html