【解题报告】 POJ 3714 Raid -- 点对最小距离 + 分治法

本文介绍了如何使用分治算法解决POJ 3714问题,即寻找一组点中不同类型的最近点对。首先对点按x坐标排序,然后通过二分法找到两个子集的最小距离。接着,筛选出与分界线距离在最小距离内的点,并按y坐标排序,通过双重循环计算相邻点对的最小距离。最终输出这个最小距离。此外,还提到使用double存储坐标以避免整数溢出的问题。
摘要由CSDN通过智能技术生成
最近点对_分治算法
              O(nlgn)思路:对所有点先按x不减排序,
              二分x,得到点集S1,点集S2,通过递归求得S1,S2的最小点对距离d1,d2;D=min{d1,d2};
              合并S1,S2:找到在S1,S2划分线左右距离为D的所有点,按y不减(不增也可以)排序
              循环每个点找它后面6个点的最小距离;
              最后即求得最小点对距离。
若要求得点对坐标,在求值是保存点的坐标即可。
最近点对还有随机算法 时间复杂度O(n)。
以上摘自  ----------   http://www.cnblogs.com/sleeper-qp/archive/2011/11/08/2241004.html
题目连接: POJ 3714
题目大意:给你一堆点,这些点分为两个类型,让你求相隔最近的不同类型的两个点的距离
// POJ 3714 Raid  -- 点对最小距离 + 分治法
// 关键是 坐标应该用double
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值