随机边缘 e 被添加到图表中。它碰巧不是桥梁边缘。让 C 成为 e 端点的连通组件。
给定 C 的所有桥边缘的列表 L (在添加 e 之前),这是找到哪个最快的算法插入 e 后, L 中的边仍然是桥边?
答案 0 :(得分:1)
如果允许预处理,则有一种快速方法:构造bridge-block forest,其顶点是2个连接的组件,其边是桥。 (如果图形已连接,则为树。)添加边时,如果连接相同的2连接组件中的点,则不会发生任何事情。如果连接位于桥块林的不同连接组件中的不同2连接组件中的点,则新边缘是桥(您认为不会发生)。如果在同一个连接组件中连接两个2连接组件,则在这些2连接组件之间找到唯一的桥接路径。它们不再是桥接器,沿着路径的所有2个连接组件都与新的2连接组件签约。任何不在这条路上的桥梁仍然是一座桥梁。
有一条评论声明你最多可以消除一座桥梁。这是不正确的。您可以连接桥块区域中的任意两个点,包括任意距离的点。添加这样的边将消除任意多条边。
在您的评论中,您提到删除边缘。这可能无效,但是如果删除非桥接e,则可能导致包含e的2连接组件C进入任意长路径,因此需要重新计算C中的2连接组件并替换C这条2连接组件的路径。将C连接到其他2个连接组件的桥接器成为将新的2连接组件C_!,...,C_k连接到C的邻居的桥梁。