平面最近点对

本文探讨了平面最近点对问题的求解方法,通过分治策略结合以x、y坐标降序排序来缩小搜索范围。同时,文章引入了一个与之相关的军事策略问题——奇袭,描述了在特定战斗场景下,如何计算特工到核电站的最短距离,以制定突袭计划。问题涉及的算法需处理大量坐标点,并寻找最小距离。
摘要由CSDN通过智能技术生成

平面最近点对

平面最近点对问题是指:求平面内n个点中距离最近的两点间距离。
分治求法:
首先将n个点按以x为第一关键字,y为第二关键字降序排序,然后选取第n/2个点为分割点,分治求左边n/2个点和右边n-n/2个点的平面最近点对,那么答案的范围肯定包括了左边右两边的最近点对了。 d = m i n ( r d , l d ) d=min(rd,ld) d=min(rd,ld).那么d是当前整个平面的最近点对的距离了吗?

答案不是,分治还需要合并!!
在这里插入图片描述

最近点对也可能在中间。
在这里插入图片描述
下一步以n/2为中间点将x坐标左右d矩形内(缩小范围)的统计下来以,y坐标排序 O ( n 2 ) O(n^2) O(n2)计算这些点的最近距离。

奇袭

在与联盟的战斗中屡战屡败后,帝国撤退到了最后一个据点。
依靠其强大的防御系统,帝国击退了联盟的六波猛烈进攻。
经过几天的苦思冥想,联盟将军亚瑟终于注意到帝国防御系统唯一的弱点就是能源供应。
该系统由N个核电站供应能源,其中任何一个被摧毁都会使防御系统失效。
将军派出了N个特工进入据点之中,打算对能源站展开一次突袭。
不幸的是,由于受到了帝国空军的袭击,他们未能降落在预期位置。
作为一名经验丰富的将军,亚瑟很快意识到他需要重新安排突袭计划。
他现在最想知道的事情就是哪个特工距离其中任意一个发电站的距离最短。
你能帮他算出来这最短的距离是多少吗?
输入格式
输入中包含多组测试用例。
第一行输入整数T,代表测试用例的数量。
对于每个测试用例,第一行输入整数N。
接下来N行,每行输入两个整数X和Y,代表每个核电站的位置的X,Y坐标。
在接下来N行,每行输入两个整数X和Y,代表每名特工的位置的X,Y坐标。
输出格式
每个测试用例,输出一个最短距离值,结果保留三位小数。
每个输出结果占一行。
数据范围
1 ≤ N ≤ 100000 , 0 ≤ X , Y ≤ 1000000000 1≤N≤100000, 0≤X,Y≤1000000000 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值