http://poj.org/problem?id=2253

floyd的應用求每條路徑兩點之間最大距離的最小值
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int a[205],b[205],d[205][205];
int main(int argc, char *argv[])
{
	int n,i,j,k,m=0; 
	while(cin>>n&&n)
	{
		for(i=0;i<n;i++)
		cin>>a[i]>>b[i];
		for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		d[i][j]=(a[i]-a[j])*(a[i]-a[j])+(b[i]-b[j])*(b[i]-b[j]);
		for(k=0;k<n;k++)
		for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		d[i][j]=min(d[i][j],max(d[i][k],d[k][j]));
		printf("Scenario #%d\nFrog Distance = %.3lf\n\n",++m,sqrt((double)d[0][1]));
	} 
	return 0;
}

發佈了54 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章