【发布时间】:2014-02-15 14:36:48
【问题描述】:
http://www.cs.uiuc.edu/~jeffe/teaching/algorithms/notes/05-dynprog.pdf 我在练习这些问题时遇到了一个难倒我的问题。
7.(a) 假设给定平面中的一组 L,由 n 个线段组成,其中每个线段在 y = 0 线上有一个端点和一个端点 在 y = 1 线上,所有 2n 个端点都是不同的。描述和 分析一种算法来计算 L 的最大子集,其中没有 一对线段相交。
(b) 假设给定平面上的 n 个线段集合 L, 其中每条线段的端点位于单位圆上 x 2 + y 2 = 1,并且所有 2n 个端点都是不同的。描述和分析一个 计算 L 的最大子集的算法,其中没有一对 段相交。
我想出了如何在 O(n log n) 时间内完成 7a(问题是寻找递增数字的最大子集的变相问题)。我几乎要放弃 7b,因为我想不出办法。
但是,有没有办法将 7b 的前提转换为更像 7a 的前提?我觉得这是解决问题的正确方法,如果能帮助解决这个问题,我们将不胜感激。
【问题讨论】:
-
已修复,感谢您指出这一点
标签: algorithm dynamic-programming