问题标题: 酷町堂:结帖了

0
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
沙宸安
沙宸安
高级启示者
高级启示者

为啥ans不能=0x7fffffff呢

0
0
曹灿阳
曹灿阳
初级天翼
初级天翼

水一下(没法采纳我)

0
0
0
我要回答