algorithm - 唯一最大匹配

标签 algorithm graph

我正在尝试使用二分图来编写具有以下属性的程序:

  1. 每边有N个顶点
  2. 图是连通的

现在,我想在我的代码中添加一个条件,检查边的数量是否大于M,不允许用户进行更多事件(用简单的句子在那个条件下打印一些东西)其中 M 是最大边数,这样它仍然具有唯一最大匹配。

问题是我怎样才能找到M?

任何想法将不胜感激 谢谢

最佳答案

如果你的意思是找到最大 m 使得至少有一个具有 n 个顶点和 m 条边的图具有唯一的最大匹配,答案是 (n + 1) * n/2。

为了证明至少有一个图具有这个边数,考虑一个图有顶点 x1, x2, .., x n 在一部分中,顶点 y1, .. yn 在另一部分中。在顶点 xi 和 yj iff (i <= j) 之间画一条边。

要显示不能再有边,请对顶点数使用归纳法。首先我们可以证明如果图中的每个顶点都连接到至少两个顶点,则该图至少有两个不同的最大匹配。 (考虑一个最大匹配,沿着一条路径从一个顶点开始,该顶点的边在匹配边和非匹配边之间交替,形成一个圆并反转所有边。)

所以我们知道有一个顶点的度数等于一。删除这个顶点和它的邻居并对剩余的图使用归纳法。

抱歉英语不好。

关于algorithm - 唯一最大匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940335/

相关文章:

algorithm - Mergesort 运行时间 BigO

java - 以有效的方式查找 PowerSet 的特定子集

c++ - std::string 操作:空白, "newline escapes '\'"和注释 #

python networkx算法获取条件为边权重乘积的路径

c++ - 如何访问 boost 子图 'graph' 属性?

java - 在 Google App Engine 上呈现有向图(类似于 graphviz)的库

java - 性能问题 : Fastest way to convert hexadecimal char to its number value in Java?

performance - 如何确定某物是否是 big Oh 函数的一部分?

ios - 如何在iOS应用程序中实现图表?

graph - 用于图形可视化的 Julia 工具