题解 P1257 【平面上的最接近点对】

· · 题解

想了想,用枚举应该可以,所以就写了一份暴力,恐怕这是最暴力的代码了:

#include <iostream>
#include <stdio.h>
#include <cmath>

using namespace std;

double l(double x, double y, double x2, double y2)  
{  
    return fabs(x - x2) * fabs(x - x2) + fabs(y - y2) * fabs(y - y2);  
}

int main(int argc, char *argv[])  
{  
    int n, i, j;  
    double minl = 2100000000, l2, x[10001], y[10001];  
    cin >> n;  
    for(i = 1;i <= n;i++)  
        cin >> x[i] >> y[i];  
    for(i = 1;i < n;i++)  
        for(j = i + 1;j <= n;j++)  
        {  
            l2 = l(x[i], y[i], x[j], y[j]);  
            if(l2 < minl) minl = l2;  
        }  
    printf("%.4lf", sqrt(minl));  
    return 0;  
}

还真是暴力出奇迹