(有人问之前,这不是功课。)算法最边缘交叉口
假设你有2个阵列y0
和y1
其中
y0 = [1,2,3,4,5,6]
和 y1 = [2,1,6,3,4,5]
通知y0[0] = y1[1] = 1
,这基本上意味着y0[0]
连接到y1[1]
。同样,y0[2] = y1[3] = 3
也是“连接”的。
(图片提供:贝利萨留)
在一个阵列中的每个元件具有第二阵列中的相应条目。 想象阵列中的每个元素为顶点,并且这些连接为边缘从一个阵列绘制到另一个阵列。
我需要找到一组边缘(最大尺寸),以使“边缘”(或线条)不会相交。
在上述示例中,通知,
Edge 1
和Edge 2
将相交。Edge 6
将与Edge 3, Edge 4, Edge 5
相交。
因此,该解决方案可以是为由于无那些线将相互交叉的1,3,4,5
或2,3,4,5
(大小= 4)。可以有多种解决方案,但我只需要一个解决方案。
我的问题,是否有任何已知的CS类似这样的问题?我应该使用什么算法?
我试着用一个例子来解释我的问题,但是,如果它仍然不清楚,我会澄清任何疑问。 在此先感谢。
这似乎与图形是否是平面的问题有关,如果不是,它是最大的平面子图是什么。不过,我不知道任何算法。 – templatetypedef 2011-01-23 04:20:36
这是一个直接图。你的意思是y0 [0]连接到y1 [0]?因为如果y0 [0] = y1 [1] = 1这是一个点,所以你不能从一个顶点到它自己形成一条边。当你说相交时,你的意思是创建一个循环的路径?例如,如果你沿着连接的边从一个顶点走过,你可以回到你的起始顶点?这个问题是不管它们是否相互连接,都要查找所有的周期? – chubbsondubs 2011-01-23 04:43:15
@chubbard,不,交叉口,我是暗示一个几何线intersection.And不,'y0 [0]`没有连接到'y1 [0]`... – st0le 2011-01-23 04:45:51