作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定图 G 的 V 顶点总数和 E 边总数,如何计算图强连通分量中顶点和边数最少的最大强连通分量。
例如。对于具有 5 个顶点和 7 个边的图,连通分量的最小大小为 3。
可以对该图进行建模,以便有更多的连通分量,但最小值为 3。
我面临的问题是边缘信息没有提供给我。仅给出边的总数。我想使用Tarjan's使用深度优先搜索的算法,但我需要边缘信息。
是否可以找到具有最小顶点和边的强连通分量的大小,即顶点总数和边总数。
最佳答案
我能想到的最简单的方法是考虑尝试利用边缘来形成 Complete Graphs 的组件。尺寸为 1,然后为 2,依此类推,直到找到合适的尺寸。
大小为 n 的完整图有 (n2 - 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 就是解决方案。
关于java - 强连通分量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36612685/
我是一名优秀的程序员,十分优秀!