日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

匈牙利算法小结

發布時間:2025/3/21 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 匈牙利算法小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于匈牙利算法的小結

二分圖定義:

兩個非空集合A, B A與B沒有交集,同一集合內部沒有連邊,這個圖為二分圖,A為左部,B為右部。

判定:

二分圖不存在奇環。

用染色法即可。

NOIP2010關押罪犯

二分圖最大匹配

二分圖沒有增廣路時,就是最大匹配。

特點:當一個點成為匹配點后,至多找到增廣路更換匹配對象,但是絕不會變回非匹配點。

時間復雜度 \(O(nm)\)

匈牙利算法代碼框架(模板)
只用從左向右建單向邊!!
建議使用vector

題目 && 模型

Round1

1.棋盤覆蓋

題解

二分圖匹配的0/1要素:

  • 0要素:點能分成兩個獨立的集合,每個集合內部沒有邊

  • 1要素:每個點只能有一條匹配邊相連

這題將骨牌看做邊,格子看做點,建模。

同類題: 車的放置

2.導彈防御塔

二分圖多重匹配,拆點,或使用網絡流,一般使用網絡流。

3.二分圖帶權匹配

網絡流吧。


Round2

1. 二分圖最小點覆蓋Machine Schedule

定理:二分圖最小點覆蓋=最大匹配邊數。

模型特點:每條邊有兩個端點,兩者至少選一個

同類題Muddy Fields, POJ3041

2. 二分圖最大獨立集騎士放置

定理:二分圖最大獨立集=節點數-最大匹配數

3. \({\rm DAG}\)最小路徑點覆蓋

  給一個 \({\rm DAG}\) ,要求用盡量少的不相交的簡單的路徑,覆蓋 \({\rm DAG}\) 的所有頂點。

定理:\({\rm DAG}\)的最小路徑點覆蓋包含的路徑條數 = 點數 - 拆點二分圖最大匹配數

拆點二分圖:設 \({\rm DAG}\)\({\rm G=(V,E)}\),拆點二分圖為 \({\rm G'=(V',E')}\) 將G中的每一個點 \(x\) 拆成左部節點 \(x\) 與右部節點 \(x+n\) , 對于 \({\rm E(x, y)}\)\({\rm G'}\) 中連單向邊 \({\rm E'(x, y + n)}\) , 得到的 \({\rm G'}\) 就是拆點二分圖。

同類題:魔術球問題 題解 我的代碼


Round3

1.[SCOI2010]連續攻擊游戲

Sol. code

每個集合只能選一個元素的模型

2.[ZJOI2007]矩陣游戲

Sol. and code

棋盤模型

3.[NOI2009]變換序列

Sol. and code

匈牙利算法的本質

4.[HNOI2013]消毒

Sol. and code

枚舉 + 最小點覆蓋模型

5.[SHOI2001]小狗散步

Sol. and code

“Pandog每次與主人相遇之前最多只去一個景點”, 建立二分圖最大匹配的關鍵信息


省選之前就寫這么多了。

轉載于:https://www.cnblogs.com/cnyali-Tea/p/10633114.html

總結

以上是生活随笔為你收集整理的匈牙利算法小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。