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;
}