HDU1007Quoit Design(最小点对)
来源:互联网 发布:角色三维动画软件 编辑:程序博客网 时间:2024/05/17 02:23
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1007
求所有点中最近两点的距离的一半;最小点对(nlog (n))算法模板题目;
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int maxn = 100001;struct point{ double x,y;}p[maxn],*a[maxn],*b[maxn];bool cmpx (point *A,point *B){ if(A->x==B->x) return A->y<B->y; return A->x<B->x;}bool cmpy (point *A,point *B){ if(A->y==B->y) return A->x<B->x; return A->y<B->y;}inline double dis(point *a,point *b){ return sqrt((a->x-b->x)*(a->x-b->x)+(a->y-b->y)*(a->y-b->y));}inline double min(double a,double b){ return a < b ? a : b;}double solve(int l,int r){ if(l+1==r) return dis(a[l],a[r]); if(l+1==r) return min(dis(a[l],a[r]),min(dis(a[l],a[l+1]),dis(a[l+1],a[r]))); int mid=(l+r)>>1; double ans=min(solve(l,mid),solve(mid,r)); int i,j,cnt=0; for(int i=l;i<=r;i++){ if(a[i]->x>=a[mid]->x-ans&&a[i]->x<=a[mid]->x+ans) b[cnt++]=a[i]; } sort(b,b+cnt,cmpy); for(int i=0;i<cnt;i++){ for(int j=i+1;j<cnt;j++){ if(b[j]->y-b[i]->y>=ans) break; ans=min(ans,dis(b[i],b[j])); } } return ans;}int main(){ int n; while(~scanf("%d",&n)&&n!=0){ for(int i=0;i<n;i++){ scanf("%lf%lf",&p[i].x,&p[i].y); a[i]=&p[i]; } sort(a,a+n,cmpx); printf("%.2lf\n",solve(0,n-1)/2); } return 0;}
0 0
- HDU1007Quoit Design(最小点对)
- hdu1007Quoit Design
- hdu1007Quoit Design
- hdu1007Quoit Design
- HDU-1007 Quoit Design 最小距离点对
- HDU 1007 Quoit Design 最小点对基础模板
- hud 1007 Quoit Design(分治求最小点对)
- (hdu 7.1.8)Quoit Design(最小点对——在n个点中,找到两个点间的最小距离)
- hdu 1007 Quoit Design [sort+分治] 寻找最小距离点对
- hdu1007最小点对
- HDU1007--最小点对
- hdu_1007_Quoit Design(最近点对)
- hdu 1007(最小点对)
- hdu 1007 最小点对
- zoj 2107 Quoit Design(最近点对)
- [最近点对]HDOJ 1007 Quoit Design
- HDU_1007[Quoit Design](最近点对)
- hdu1007 Quoit Design(最近点对)
- 数据统计的错误分析与改进
- 使用SiteScope监控WebLogic
- 快排算法quickSort
- OC 弱引用 weak __weak assign __assign
- HDU_ACM-2057 A+B again
- HDU1007Quoit Design(最小点对)
- Unity3D NGUI事件 UIEvents
- Java简述
- HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
- OC 的13个缺点
- 【Stanford Machine Learning】Lecture 2--Linear Regression with Multiple Variables
- Oracle、MySql、SQLServer 数据分页查询
- hdu1262寻找素数对
- UVa 10829 - L-Gap Substrings (后缀数组)