(有人問之前,這不是功課。)算法最邊緣交叉口
假設你有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