UVA - 10245 The Closest Pair Problem

xiaoxiao2021-02-28  74

题目大意:给 N 个点,输出最小距离。最小距离超过 10000 输出 INFINITY 解题思路:暴力QwQ

#include<iostream> #include<stdio.h> #include<algorithm> #include<cmath> #include<string.h> const int INF = 0x3f3f3f3f; const int NINF = -INF -1; using namespace std; struct point { double x, y; }; point poi[10010]; double dis(point a, point b) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } int main() { int n; while (scanf("%d", &n) && n != 0) { for (int i = 0; i < n; i++) { scanf("%lf%lf", &poi[i].x, &poi[i].y); } double minn = INF; for (int i = 0; i < n; i++) for (int j = i+1; j < n; j++) { double tmp = dis(poi[i], poi[j]); if (tmp < minn) minn = tmp; } if (minn > 10000) printf("INFINITY\n"); else printf("%.4lf\n", minn); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-76222.html

最新回复(0)