0
已解决
汪恺恒
中级启示者
中级启示者
题目描述 Description
给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的。
输入描述 Input Description
第一行:n;2≤n≤10000
接下来n行:每行两个实数:x y,表示一个点的行坐标和列坐标,中间用一个空格隔开。
输出描述 Output Description
仅一行,一个实数,表示最短距离,精确到小数点后面4位。
WA10
#include<iostream>
#include<bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
double ans=0x3f3f3f3f;
int n;
struct D{
int x,y;
}a[10005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
double s=sqrt(abs(a[i].x-a[j].x)*abs(a[i].x-a[j].x)+abs(a[i].y-a[j].y)*abs(a[i].y-a[j].y));
ans=min(ans,s);
}
}
printf("%.4f",ans);
return 0;
}
汪恺恒在2021-02-05 10:41:21追加了内容
已自行解决,采纳第一个
0
2
0
0
0
0
0
0
0
0