我正在尝试使用二分图来编写具有以下属性的程序:
现在,我想在我的代码中添加一个条件,检查边缘的数量是否大于 M ,不允许用户进行更多活动(在一个简单的句子中打印出那种条件下的东西)其中M 最大数字边,使其仍然具有唯一最大匹配。
问题是如何找到M?
任何想法都将受到赞赏 感谢
答案 0 :(得分:0)
如果你想找到最大m,使得至少有一个图形有n个顶点,m个边缘有唯一的最大匹配,答案是(n + 1)* n / 2。
要显示至少有一个具有此边数的图形,请考虑顶点x 1 ,x 2 ,..,x 的图形n 在一个部分中,顶点y 1 ,.. y n 在另一部分中。在顶点x i 和y j 之间绘制一条边iff(i <= j)。
表示不能再有边缘,在顶点数上使用归纳法。首先,我们可以显示图中的每个顶点是否连接到至少两个顶点,该图具有至少两个不同的最大匹配。 (考虑一个最大匹配,遵循一个顶点的路径,其边缘在匹配边和不匹配边之间交替,形成一个圆并反转所有边。)
所以我们知道有一个度数等于1的顶点。删除此顶点及其邻居并在剩余图表上使用归纳。
抱歉英语不好。