首页 > 代码库 > 二分图学习整理
二分图学习整理
今天学习了一下二分图,赶紧总结整理一下:
二分图问题,有很多,但归根结底还是求最大匹配数。
二分图最大匹配及常用建图方法
Point 1:
二分图中的最小点覆盖数 = 最大匹配数
最小点覆盖:也就是说用最少的点覆盖所有的边
Point 2 :
二分图中的最小路径覆盖 = 顶点数 - 最大匹配数
最小路径覆盖:也叫最小边覆盖,是指用尽量少的不相交的路径覆盖图中的所有顶点。
Point 3:
二分图的最大独立集合 = 顶点数 - 最大匹配数
独立集合:即 独立于所有联通边集之外的点,也就是与图中任意一个点都不相连的点集
PS:学好图论没有途径,就刷题、刷题、再刷题
pku 1466 Girls and Boys http://poj.org/problem?id=1466
这是一道典型的二分匹配的题目,并且非常简单,使用模板即可AC。
题目大意:在N个点的图G中选出m个点,使这m个点两两之间没有边.求m最大值.
如果图G满足二分图条件,则可以用二分图匹配来做.最大独立集点数 = N - 最大匹配数。
最大独立数=未匹配的节点+匹配数/2 (1)(设n=匹配数/2,可以理解为去掉二分图某侧匹配好的n个节点,
在另一侧对应的n个节点就没有相匹配的了)
未匹配的节点=顶点数-匹配数 (2)
由(1)(2)得: 最大独立数=顶点数-匹配数的一半
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010920914230/
2:pku 1719 Shooting Contest 二分图匹配
http://blog.163.com/zjut_nizhenyang/blog/static/169570029201010199320592/
建图,输出匹配就行了
//题目分析:题目其实要求你以x,y坐标作为二分图的两个节点部分,然后让你找到一个匹配,然后根据一个部分的节点顺序把对应的另一个节点输出
//思路分析:直接用dfs实现的匈牙利算法来解决二分图
参考:http://blog.163.com/zjut_nizhenyang/blog/static/169570029201010199320592/
3:pku 1422 二分图,最小路径覆盖
http://poj.org/problem?id=1422
参考:http://blog.163.com/zjut_nizhenyang/blog/static/16957002920101025922340/
4:pku 2594 Treasure Exploration floyd 重新建图+最小路径覆盖+二分图
http://poj.org/problem?id=2594
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010102583552414/
5:pku 3216 Repairing Company floyd 最短路+二分图最大匹配
http://poj.org/problem?id=3216
参考:http://blog.163.com/zjut_nizhenyang/blog/static/169570029201010257563738/
6:pku 1904 King‘s Quest 强连通分支,二分图
http://poj.org/problem?id=1904
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010102572022595/
7:pku 3041 二分图 最小点覆盖数=最大匹配数
http://poj.org/problem?id=3041
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010102462244415/
8:zjut 1321 Dividing 二分图匹配
http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1321
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010102454153206/
9:pku 2771 Guardian of Decency 二分图,最大独立集
http://poj.org/problem?id=2771
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010111065019932/
10:pku 1325 Machine Schedule 二分图最小点覆盖
http://poj.org/problem?id=1325
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010111035942586/
11:pku 1486 Sorting Slides 二分图必须边
http://poj.org/problem?id=1486
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010111032443864/
12:pku 2536 Gopher II 二分图匹配
http://poj.org/problem?id=2536
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010117113611862/
13:pku 2239 Selecting Courses 二分图匹配
http://poj.org/problem?id=2239
参考:http://blog.163.com/zjut_nizhenyang/blog/static/16957002920101171151319/
14:pku 1274 The Perfect Stall 二分图匹配
http://poj.org/problem?id=1274
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010117102245344/
15:pku 2724 Purifying Machine 二分图最小路径覆盖
http://poj.org/problem?id=2724
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010111495830231/
16:pku 3020 Antenna Placement 二分图最小路径覆盖
http://poj.org/problem?id=3020
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010111485846859/
17:pku 2446 二分图最大匹配的应用
http://poj.org/problem?id=2446
参考:http://blog.163.com/zjut_nizhenyang/blog/static/169570029201011148555347/
18:pku 2226 Muddy Fields 二分图 最小点覆盖
http://poj.org/problem?id=2226
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010111365944100/
19:zjut 1478 挽救损失 二分图 最小点覆盖
http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1478
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010111365248521/
20:pku 2060 Taxi Cab Scheme 二分图最小路径覆盖
http://poj.org/problem?id=2060
参考:http://blog.163.com/zjut_nizhenyang/blog/static/16957002920101111433360/
21:pku 1548 Robots 二分图最小路径覆盖
http://poj.org/problem?id=1548
参考:http://blog.163.com/zjut_nizhenyang/blog/static/169570029201011113748927/
22:pku 3692 Kindergarten 二分图最大独立集,求补图的最大独立集
http://poj.org/problem?id=3692
参考:http://blog.163.com/zjut_nizhenyang/blog/static/1695700292010111075931537/