description:
给定n个点,求出两点之间最短距离
solution:
观察数据范围,发现 n≤100,所以之间 O(n2)暴力即可。
这里要注意不要丢失精度,于是就全开double,最后输出6位就行了
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
double sqr(double x)
{
	return x*x; 
}
double x[1005],y[1005];
int main()
{
	double n;
	double ans=0;
	scanf("%lf",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lf%lf",&x[i],&y[i]);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			ans=max(ans,sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j])));
		}
	} 
	printf("%.6lf\n",ans);
	return 0;
} 



京公网安备 11010502036488号