1
A
回答
1
岛是一个节点的集合,这样你就可以从一个节点遍历到另一个节点而不会跨越任何桥。没有连接到任何其他节点的单个节点是岛。
岛链是由桥梁连接的一系列岛屿。岛链是无环的;如果你通过一座桥离开一个岛,除了同一座桥,你不能回到岛上。请注意,这与组成岛链节点的集合是非循环的并不相同;个别岛屿可能包含循环。
当添加的边缘图表,遵循这些原则,让你的链条,岛屿,桥梁的轨道:
如果一个新的边缘补充说,一个岛屿连接到本身,即边缘不是一座桥。桥梁总数保持不变。
如果两个岛屿是不一样的岛链的一部分,一个新的边缘添加连接它们,那么边缘变成一座桥,这两个岛链合并成一个单一的岛链。
如果两个岛屿是岛链的一部分,并且增加了连接它们的新边缘,则必须合并一些岛屿以维护非循环属性。通过连接两个岛屿的岛链寻找路径。对于以这种方式遍历的所有岛屿,包括两端的岛屿,将它们全部合并成一个岛屿。你以这种方式穿过的任何桥梁都不再成为桥梁。
通过这些步骤,您可以在添加边缘的同时保持图形中桥接的数量。从未连接的节点开始。每个节点都是一个岛链,其中包含一个岛,其中包含一个节点。当您添加边缘时,请参阅上面的三条规则以根据需要合并岛屿和岛屿链。
岛可以表示为一组节点,岛链可以表示为岛的无向非循环图。算法中最昂贵的部分是找到两个现有岛之间的路径;直觉上,我猜测链中的岛数会相对于n
保持较小,因此总体复杂度将接近O(m)时间。
相关问题
- 1. 团结GetAxis增量计算
- 2. 计算对象增量
- 3. 计算工资增量
- 4. 计算网站中的页面数量
- 5. 视网膜屏幕增加计算
- 6. 在java中计算图(网络)中节点的数量
- 7. 无法提取增量和增量delta功率谱计算
- 8. 计算增长率和两个变量
- 9. 如何正确计算时间增量?
- 10. R:计算增量在时间序列
- 11. 使用java计算增量平均值
- 12. R选项隐含增量计算
- 13. 计算图像中对象的数量
- 14. 计算位图中“孔”的数量
- 15. 在R中循环创建计算的增量列
- 16. 使用最大内存效率的增量中值计算
- 17. 使用分区计算Pandas中条目之间的增量
- 18. R数据表中的计算时间增量
- 19. 如何计算Oracle 11g中存储使用量的增加?
- 20. 计算网络的最大流量
- 21. 计算B类网络中每个子网的主机数量
- 22. 什么是增强库中计算Voronoi图的边界框
- 23. Angularjs计数增量
- 24. MySQL中的产量计算
- 25. Netlogo:计算图形/网络的直径
- 26. CSS,增加100%[计算(100%+ __)
- 27. 为某些网址计算浏览量
- 28. 如何计算我的仓库每天的平均增长量?
- 29. 计算大小递增的矢量的平均值
- 30. CSS计算与计算的变量
是的,我是。现在似乎很滑稽。你的想法在时间内似乎是可以实现的。我会编写代码并返回。谢谢!! – frodo 2012-07-19 16:20:55