问题:给定带有周期的无向图,合并最小数量的节点以消除周期。
例如,下图的解决方案:
G H
/ \ / \
A--B---C--D---E--F
\ / \
I J
将是
A--BCGI--DEH--F
\
J
我对如何通过广度优先搜索并在检测到周期时将节点合并到根来解决这个问题有一个大概的想法,但它看起来有点复杂。我想知道这个问题是否有一个众所周知的算法。
BTW:这不是作业。 :)答案 0 :(得分:1)
这听起来很像你已经想到的:)。但是,如果您使用union-find数据结构来跟踪合并而不是实际修改图形,那么它会更容易。见http://www.algorithmist.com/index.php/Union_Find