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