【发布时间】:2017-08-12 19:32:28
【问题描述】:
我有一个问题需要通过分而治之来解决。 有一个集合 S,包括 N 个点。 如果有一个平行于轴的正方形,只包含 S 中的两个点 p1 和 p2,那么我们称为 p1 和 p2 朋友点。
现在,我需要使用分治算法来计算 S 中有多少朋友点。
我想了很久。我没有办法。 我需要你的帮助。 我的英语不好,如果你有问题,请问我,我会补充。谢谢。
【问题讨论】:
-
一个给定的点可以成为多个其他点的朋友吗?想象一组在 p1=(-1, 0)、p2=(0, 0) 和 p3=(+1, 0) 处的三个点。这个套装只有两个朋友点吗?或者会有两对朋友 {p1, p2} 和 {p2, p3} 从而获得三个朋友点?
-
一个给定的点成为多个其他点的朋友
-
如果点可以是多个其他点的朋友,最好的算法是构造一个Voronoi Diagram。然后,给定点是位于相邻 Voronoi 区域中的所有其他点的朋友。描述了一种分治算法here。与Voronoi 图密切相关的是Delauney Triangulation。它连接相邻的 Voronoi 点,因此可以看作是“友谊图”。
标签: algorithm