强大的连接组件

时间:2016-04-14 02:14:54

标签: java graph

给定图G的V顶点的总数和E边的总数,如何计算具有最小顶点数的最大强连通分量&图中强连通分量的边。

EG。对于具有5个顶点和7个边的图形,连通分量的最小尺寸为3.
可以对该图进行建模,以便有更多的连通分量,但最小值为3.

我面临的问题是没有给我边缘信息。仅给出了边的总数。我想使用Tarjan's算法使用深度优先搜索,但我需要边缘信息。

是否可以找到具有最小顶点和边的强连通分量的大小,只有顶点总数和边总数。

1 个答案:

答案 0 :(得分:-1)

我能想到的最简单的方法是考虑尝试利用边缘来形成大小为1 {2}的组件,然后是2等,直到找到有效的组件。

尺寸为n的完整图形具有(n 2 - n)/ 2边。因此,拆分为大小为n的组件将类似于

numFullComponents := V/n //integer division
numEdgesUsed := numFullComponents * n * (n-1) / 2 //This is edges from full components
    + (V%n) * (V%n - 1)/2 //a complete graph on the remainder nodes

然后,您可以将使用的边数与图中的边数进行比较。使用至少E边的最小n是解决方案。

相关问题