1
A
回答
1
島是一個節點的集合,這樣你就可以從一個節點遍歷到另一個節點而不會跨越任何橋。沒有連接到任何其他節點的單個節點是島。
島鏈是由橋樑連接的一系列島嶼。島鏈是無環的;如果你通過一座橋離開一個島,除了同一座橋,你不能回到島上。請注意,這與組成島鏈節點的集合是非循環的並不相同;個別島嶼可能包含循環。
當添加的邊緣圖表,遵循這些原則,讓你的鏈條,島嶼,橋樑的軌道:
如果一個新的邊緣補充說,一個島嶼連接到本身,即邊緣不是一座橋。橋樑總數保持不變。
如果兩個島嶼是不一樣的島鏈的一部分,一個新的邊緣添加連接它們,那麼邊緣變成一座橋,這兩個島鏈合併成一個單一的島鏈。
如果兩個島嶼是島鏈的一部分,並且增加了連接它們的新邊緣,則必須合併一些島嶼以維護非循環屬性。通過連接兩個島嶼的島鏈尋找路徑。對於以這種方式遍歷的所有島嶼,包括兩端的島嶼,將它們全部合併成一個島嶼。你以這種方式穿過的任何橋樑都不再成爲橋樑。
通過這些步驟,您可以在添加邊緣的同時保持圖形中橋接的數量。從未連接的節點開始。每個節點都是一個島鏈,其中包含一個島,其中包含一個節點。當您添加邊緣時,請參閱上面的三條規則以根據需要合併島嶼和島嶼鏈。
島可以表示爲一組節點,島鏈可以表示爲島的無向非循環圖。算法中最昂貴的部分是找到兩個現有島之間的路徑;直覺上,我猜測鏈中的島數會相對於n
保持較小,因此總體複雜度將接近O(m)時間。
相關問題
- 1. 計算R中變量的增量
- 2. 增量計數和計算
- 3. 計算機網絡中網橋之間的互連
- 4. 在Java中的ConcurrentHashmap中計算增量
- 5. 連接圖中的網橋
- 6. 增量圖算法
- 7. 計算工資增量
- 8. 計算增量不正確
- 9. 計算對象增量
- 10. 增量計算揹包
- 11. 神經網絡:計算重量增量是一個瓶頸
- 12. 在SQL中創建增量計算
- 13. 計算網站中的頁面數量
- 14. 視網膜屏幕增加計算
- 15. 在java中計算圖(網絡)中節點的數量
- 16. 無法提取增量和增量delta功率譜計算
- 17. 計算網絡吞吐量
- 18. Kendo網格計算變量
- 19. 計算覆蓋圖像中物體的網格框的數量
- 20. 增量分數計算方法
- 21. 在單個表格上計算增量
- 22. 如何正確計算時間增量?
- 23. R選項隱含增量計算
- 24. 計算文件並增加變量Python
- 25. 增量分數計算錯誤?
- 26. 使用java計算增量平均值
- 27. 計算增長率和兩個變量
- 28. R:計算增量在時間序列
- 29. 計算位圖中「孔」的數量
- 30. Pig:計算地圖中鍵的數量
是的,我是。現在似乎很滑稽。你的想法在時間內似乎是可以實現的。我會編寫代碼並返回。謝謝!! – frodo 2012-07-19 16:20:55