p1257
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int n,a,b;
double ans=1234565488;
struct node{
double x,y,xx,yy;
}hx[N];
bool cmp(node a,node b){
return a.xx<b.xx;
}
int main(){
double c=sin(1),d=cos(1);//c=0.114,d=0.514
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>b;
hx[i].x=a;
hx[i].y=b;
hx[i].xx=a*d-b*c;
hx[i].yy=a*c+b*d;
}
sort(hx+1,hx+1+n,cmp);
for(int i=1;i<=n;i++){
double wx=hx[i].x,wy=hx[i].y;
for(int j=i+1;j<=min(i+5,n);j++){
double tx=hx[j].x,ty=hx[j].y;
double d=sqrt((wx-tx)*(wx-tx)+(wy-ty)*(wy-ty)); //计算距离
ans=min(d,ans);
}
}
// printf("%.4lf",ans);
printf("%.4lf",ans+0.00005);
}
//x'=xcosθ-ysinθ
//y'=xsinθ+ycosθ
为什么我加了四舍五入还错了,不加还A了 thanks