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

· · 题解

既然这个题目都告诉我们可以暴搜

那么。。。

暴力枚举呢?

8说了, 开冲 上代码

#include<bits/stdc++.h>
using namespace std;
int x[10005],y[10005];
int n;
double ans=100000000;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x[i]>>y[i];
        for(int j=i-1;j>=1;j--){//这里每一次输入只要和前面几次比较,可以节省一些时间
            int aa=(x[i]-x[j])*(x[i]-x[j]),bb=(y[i]-y[j])*(y[i]-y[j]);
            if(sqrt(aa+bb)<ans)ans=sqrt(aa+bb);//勾股定理强算
            }
        }

    cout<<fixed<<setprecision(4)<<ans;  
    return 0;
    }

显然,这种方法效率极低(毕竟我很蒟蒻),但是做这个题目够了

(第一篇题解lol)