题解 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;
}
还真是暴力出奇迹