首页 > 代码库 > 最接近点对问题
最接近点对问题
题目大意,给出平面上n个点,每个点都有自己的坐标,找其中一对点,在其中是最短的距离
每一点个n-1个点算出距离,这方法太SB了,换一个
然后就考虑两个子集,S1和S2,分别大约有N/2个点,使得在n个点组成的所有点对中,然后在每一个子集集中递归来解决这问题。问题就是两点如果恰好分别在S1和S2,怎么办?
这里直接给出代码:
bool Cpairl(S,d){ n=|S|; if(n<2){d=无限大梦想;return false} m=S的中位数; S1={x|x<=m}; S2={x|x>m}; Cpairl(S1,d1); Cpairl(S2,d2); p=max(S1); q=min(S1); d=min(d1,d2,q-p); return true;}
然后再考虑怎么扩展到二维;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。