description:

给定n个点,求出两点之间最短距离

solution:

观察数据范围,发现 n 100 n\leq100 n100,所以之间 O ( n 2 ) O(n^2) 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;
}