题解 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)