您的位置:首页 > 其它

hdu 1007 解法

2017-06-05 23:45 162 查看
上一篇解法,老是TLE。 这一个AC,但是我总觉得上一篇的分治法才是更好的解法,但是却TLE。

#include <iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;

struct Node{
double x,y;
};

Node ar[100001];

bool cmpx(Node a,Node b){return a.x<b.x;}

bool cmpy(Node a,Node b){return a.y<b.y;}

int main()
{

int n;
while(cin>>n){

if(n==0)break;

for(int i=0;i<n;i++){

scanf("%lf%lf",&ar[i].x,&ar[i].y);

}

sort(ar,ar+n,cmpx);

double d=1<<30;
for(int i=1;i<n;i++){

double temp=(ar[i].x-ar[i-1].x)*(ar[i].x-ar[i-1].x)+(ar[i].y-ar[i-1].y)*(ar[i].y-ar[i-1].y);

if(d>temp){

d=temp;
}
}
sort(ar,ar+n,cmpy);

for(int i=1;i<n;i++){

double temp=(ar[i].x-ar[i-1].x)*(ar[i].x-ar[i-1].x)+(ar[i].y-ar[i-1].y)*(ar[i].y-ar[i-1].y);

if(d>temp){

d=temp;
}
}

printf("%.2lf\n",sqrt(d)/2);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: