二分圖和匹配
如果一張圖的點集可以被分割成兩個點集,且在同個點集的任兩點沒有連邊,我們就叫這張圖為二分圖
等價:
這張圖是2-colorable
這張圖不存在奇環
二分圖?
dfs塗色看是不是2-colorable
二分圖判定?
動態加邊在線二分圖判定
匹配
定義:一個匹配是圖的一個邊集\(M\),
使得任兩條\(M\)中的邊沒有共同頂點
匹配?
- 最大匹配:邊數最多的匹配
- 極大匹配:不能再加邊的匹配
- 完美匹配:所有點都被匹配到的匹配
- 最大權匹配:邊權和最大的匹配
- 最大權最大匹配:所有最大匹配中邊權和最大
- 最大權完美匹配:所有完美匹配中邊權和最大
一些你有機會遇到的匹配
- 交替路徑:從一個未匹配點出發,依次經過非匹配邊、匹配邊、非匹配邊…形成的路徑
- 擴充路徑:交替路徑最後是未匹配點
有擴充路徑->我們可以找到更大的匹配
最大匹配?
- 對一個圖\(G\)中的匹配\(M\), \(M\)是最大匹配若且唯若不存在擴增路徑
- (=>)剛講了
- (<=)假設\(M\)沒有擴增路徑但存在更大的匹配\(M'\):
去看\(M\)和\(M'\)的對稱差構出的圖\(H\),
\(H\)上每個點deg都\(\leq 2\)
=>\(H\)是一些環和路徑
=>其中只有擴增路徑會讓\(M'\)贏
=>大爆炸
Berge's Theorem
- 用flow可以做到\(O(\sqrt{|V|}|E|)\),下星期的flow講師說他要講為什麼是\(\sqrt{|V|}\)
- 我們試著用前面找增廣路的想法
- 以每個左邊的未匹配點為起點找增廣路
- \(O(|V||E|)\):好想變\(O(\sqrt{|V|}|E|)\)喔->hopcroft karp
二分圖匹配
bool vis[MAXN];
int match[MAXN];
vector<int> e[MAXN];
bool dfs(int now){
vis[now]=1;
for(auto x:e[now]){
if(match[x]==0||(!vis[match[x]]&&dfs(match[x]))){
match[x]=now;
match[now]=x;
return 1;
}
}
return 0;
}二分圖和他的快樂夥伴
一張二分圖有\(X\)-完美匹配若且唯若\(\forall S\subset X\),\(|N(S)|\geq|S|\)
(=>)隨意
(<=) 開心數歸,分存在一個 \(S\subset X,|N(S)|=|S| \)(就可以把這些人抓出來) 和其他
有用到hall的oi題:暴雷
hall定理
- 點覆蓋:一個點集使得所有邊都和該集合的點相鄰
- 點獨立集:一個點集\(S\)使得\(S\)內任兩個點不相鄰。
- 邊就把點換成邊,邊換成點
- 邊獨立集就是匹配
- 對所有圖有|最大匹配| + |最小邊覆蓋|=|最小點覆蓋| + |最大獨立集|= |V|
覆蓋
對任意二分圖\(G\),其最大匹配的大小等於其最小點覆蓋的大小:
(\(\leq\))每個匹配邊都至少需要一個點來覆蓋
(\(\geq\))我們構造一個大小和最大匹配一樣大的點覆蓋:
設\(X\)中所有未被匹配的人可以走交錯路徑到的地方為\(S\),選\((X\setminus S)\cup(Y\cap S) \),要驗他真的是點覆蓋還有他大小真的和最大匹配一樣大
Kőnig定理
最大權
最大權最大匹配->最大權匹配?
最大權匹配->最大權最大匹配?
在\(K_{n,n}\)中求最大權完美匹配
KM
我們將每個點標上一個值\(l(v)\)讓任意邊\(e=(u,v)\)有\[l(u)+l(v)\geq w(e)\]
發現到頂標和\(\geq\)任何完美匹配權重和
任何合法頂標和\(\geq\)最大完美匹配權重和
頂標
想要找到一種緊邊完美匹配:
- 在緊邊上找到擴充路徑
- 在沒有擴充路徑時動點權讓我們有更多緊邊:
那我們從\(v\)(假設\(v\in X\))開始走了一個交錯樹
設走到的是\(S_X\)和\(S_Y\)
要能有擴充路徑就得要有邊在\(S_X\)和\(Y\setminus S_Y\)
把這些邊抓出來算\(\min(l(u)+l(v)-w(e))=\delta\)
把\(S_X\)的頂標\(-\delta\),\(S_Y\)的頂標\(+\delta\)
緊邊匹配
題目們
亂抓一通
其他東西
所以我們來看酷東西
沒人要寫縮花
\(T(G)_{i,j}=0 \)若沒有\((v_i,v_j)\)這條邊
\(=x_{i,j}\)若有\((v_i,v_j)\)這條邊且\(i<j\)
\(=-x_{i,j}\)若有\((v_i,v_j)\)這條邊且\(j<i\)
tutte matrix
只有偶環覆蓋有用
有完美匹配\(\iff \)行列式不為0
最大匹配的size*2\(=T(G)\)的秩
講師太笨還不會
你們自己go
構解
Minimal
By owoovo
Minimal
- 94