hihocoder 1122 : 二分图二•二分图最大匹配之匈牙利算法
首先,匈牙利算法是用來求二分圖的最大匹配的,它的核心問題就是找增廣路徑。匈牙利算法的時間復(fù)雜度為O(VE),其中
V為二分圖左邊的頂點數(shù),E為二分圖中邊的數(shù)目。
現(xiàn)在我們來看看增廣路有哪些性質(zhì):
(1)有奇數(shù)條邊。
(2)起點在二分圖的左半邊,終點在右半邊。
(3)路徑上的點一定是一個在左半邊,一個在右半邊,交替出現(xiàn)。
(4)整條路徑上沒有重復(fù)的點。
(5)起點和終點都是目前還沒有配對的點,而其它所有點都是已經(jīng)配好對的。
(6)路徑上的所有第奇數(shù)條邊都不在原匹配中,所有第偶數(shù)條邊都出現(xiàn)在原匹配中。
(7)最后,也是最重要的一條,把增廣路徑上的所有第奇數(shù)條邊加入到原匹配中去,并把增廣路徑中的所有第偶數(shù)條邊從原
匹配中刪除(這個操作稱為增廣路徑的取反),則新的匹配數(shù)就比原匹配數(shù)增加了1個。
當(dāng)然,匹配開始時我們?nèi)我膺x擇一邊的所有點為起始點找增廣路徑,由增廣路的性質(zhì)可以看出,每找到一條增廣路徑,匹配
數(shù)增加1。
求增廣路的方法是用遞歸的思想,從已知的匹配結(jié)果當(dāng)中去尋找是否還能夠給當(dāng)前節(jié)點留出一個位置來匹配。。。。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的hihocoder 1122 : 二分图二•二分图最大匹配之匈牙利算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Description Resource
- 下一篇: hihocoder 1127 : 二分图