![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【图论】--二分图匹配
起风了_唯有努力生存
继续加油
展开
-
HDU5215---Cycle(染色法判定奇偶环)
题目来源:http://acm.hdu.edu.cn/php?pid=5215题意给出一个无向图,判定这个无向图中是否存在奇偶环。思路利用染色法去枚举该点以及他周围所有点,利用反祖边的思想,那么若是存在反祖边,就要判断一下颜色,若是一样,则是构不成二分图,也表明是奇环,反之,则是偶环,但是有一种偶环是奇环拼凑起来的,比如: 这里,假如,染色的时候是按着:1->2->3的顺序,到了3之后,发现了原创 2017-08-11 09:39:59 · 543 阅读 · 0 评论 -
hdu1068-Girls and Boys(最大独立集,匹配问题)
题目来源:http://showproblem.php?pid=1068题意有那么一堆人,编号从0开始到n-1,每个人都有几个有关系的人,研究者试图找出没有缘分同学的最大集。输出数量。思路利用匈牙利匹配求出最大匹配,因为是求得两个人之间的,所以最后结果要除以2,求出最大匹配,然后最大独立集的元素数量=总个数-最大匹配代码#include<cstdio>#include<cstring>#incl原创 2017-11-14 16:10:52 · 247 阅读 · 0 评论 -
hdu1054-Strategic Game (最小点覆盖,匹配问题)
题目来源:http://a/showproblem.php?pid=1054题意存在一个点集,使得每一边至少有一个端点存在于点集中。最小点覆盖指的元素最少的集合。思路依照公式,最小点覆盖=最大匹配。 但是题中我们算的是两两之间的,所以会有重复,所以最后的结果要除以2。。。(最小路径覆盖与最小点覆盖傻傻分不清、。。。), 邻接矩阵超时了。。。使用了邻接表。。。500+ms,使用Hk应该会更快。。。原创 2017-11-15 09:46:11 · 227 阅读 · 0 评论 -
poj3020-Antenna Placement(最小路径覆盖问题,最大匹配)
题目来源:http://poj.org/problem?id=3020题意为城镇安装无线网络(WI-FI),给出一个矩阵,矩阵里的’*’代表房子,然后’o’代表空地,也就是不是房子,然后一个无线覆盖的范围是挨着的两个房子(不可以斜着),然后问,最少需要多少个无线。。。思路这道题采用了拆点的思想,然后给重新分成两部分的点集加上关系(挨着的),然后就是利用匈牙利匹配得到最大匹配,利用公式:最短路径覆盖=原创 2017-11-14 21:03:14 · 260 阅读 · 0 评论 -
hdu1051-Air Raid(DAG的最小路径覆盖,匹配问题)
题目来源:http://acm.hdu.edu.cn/hp?pid=1151题意在一个DAG(有向无环)图上,编写程序求最小数量的伞兵,这些伞兵可以访问所有的点。思路DAG图最小路径覆盖问题: 用尽量少的不想交的简单路径覆盖图上所有的点。, 转化: 完美。。。这个时候就可以求最大匹配。 答案=点的个数-最大匹配。(定理。。。)代码#include<cstdio>#include<c原创 2017-11-14 14:22:21 · 311 阅读 · 0 评论 -
poj2594-Treasure Exploration(最小路径覆盖,最大匹配,floyed(优化))
题目来源:http://poj.org/problem?id=2594题意有好多机器人去一个DAG(有向无环图)寻宝藏,问,最少放置几个才可以遍历所有点。思路这道题挑明了就是类似hdu1051的题目,求得是最小路径覆盖问题,只不过那道题的伞兵不可移动,而这里的机器人可移动,所以能够移动的话,就代表:mp[1][2]=1,mp[2][3]=1,那么mp[1][3]=1。 所以事先会利用floyed的原创 2017-11-15 10:41:43 · 177 阅读 · 0 评论 -
poj3189--Steady Cow Assignment (二分多重匹配)
题目来源:http://poj.org/problem?id=3189题意题意杀。。。 额,给出了n头牛,还有b个牛圈,然后每头牛对b个牛圈内心深处有自己的评价,也就是相对来说更喜欢去哪个牛圈,有自己的排名。。。然后嘞,牛圈在牛心中的排名差计算方法为:所有牛中最大排名和最小排名之差。问最小的排名差。。。思路简单的一个多重匹配问题,就是题意不好理解,,多重匹配里有两种解法,一种使用二分范围,一种是类原创 2017-11-20 13:19:01 · 284 阅读 · 0 评论 -
hdu3829-Cat VS Dog(最大独立集,匹配问题)
题目来源:http:///showproblem.?pid=3829题意动物园里,有好多小狗小猫,有那么一群孩子,他们分别有喜欢的动物和不喜欢的动物(必须种类不一样。),然后动物园要送走一些动物,那么如果送走了孩子不喜欢的动物,孩子会很开心,问最多能使得多少个孩子开心。。。思路哇,一看这题就蒙了。。(太菜太菜) 这道题其实是求最大独立集。怎么理解呢 两个孩子之间如果喜欢和不喜欢的刚好一样,哇,那原创 2017-11-15 13:29:59 · 335 阅读 · 0 评论 -
hdu2255--奔小康赚大钱 (二分图最大权匹配)
题目来源:http:/showproblem.php?pid=2255题意中文题意,,,,思路这道题是一道模板题。。。 贴上两篇博客,内容是 循序渐进。,。。 no1:http://www.cnblogs.com/wenruo/p/5264235.html no2:http://dsqiu.iteye.com/blog/1689505代码#include<cstdio>#include<cs原创 2017-11-20 16:37:58 · 284 阅读 · 0 评论 -
hdu3488-Tour(最大权匹配变种)
题目来源:http://showproblem.php?pid=3488题意有一个有向图,图中包括一个或多个环,那么使用一个或者多个环的情况下将所有点进行覆盖,最小权值是多少。环:只有一个点经过两次,其余各点各经过一次思路Kuhn-Munkers算法的几种变形应用 1.Kuhn-Munkers算法是求最大权完备匹配,如果要求最小权完备匹配怎么办?方法很简单,只需将所有的边权值取其相反数,求原创 2017-11-22 14:08:01 · 270 阅读 · 0 评论 -
poj3041-Asteroids(最小点覆盖,最大匹配)
题目来源:http://poj.org/problem?id=3041题意在一个n*n的矩阵里,有k个位置有障碍,此时手里有一把枪,每次可以消灭一行或者一列障碍,那么最少需要几次才可以消灭干净。,思路这道题用行和列构建二分图,如果某行和某列的交点是障碍,就把行列相连,那么问题就转化成了最小点覆盖的问题,最大匹配即可。。。代码#include<cstdio>#include<cstring>#in原创 2017-11-14 13:45:52 · 266 阅读 · 0 评论 -
HDU2389---Rain on your Parade (二分图匹配-HK算法)
题目来源:https://vjudge.net/problem/HDU-2389题意在一个露天party里,宾客们在狂欢,还有ts时间将要下雨,现场有m个人,地上有n个雨伞,各自有着不同的坐标,人有着各自的奔跑速度,一个伞只能够容纳一个人,问, 有多少个人可以不被雨淋湿。思路m个人,n把伞,典型的匹配问题,只要能跑到的就说明人和该伞有关系,然后就是二分匹配,但是普通的二匹配会超时,所以要用到二分匹配原创 2017-08-09 15:49:37 · 784 阅读 · 0 评论 -
hdu4185-Oil Skimming(二分图,模板)
题目来源:http://a/showproblem.php?pid=4185题意给出一个由’.’和’#’构成的矩阵,#代表油田,为10*10,问,每次挖10*20的油田,最多挖几次。思路这道题思路很简单,给每个油田编号,然后把它四周有关系的标记,然后问题就转化成了两两匹配,最多能匹配多少组,那么1和2是一组,2和1也是一组,所以,最后结果要除以2。 这道题证明了一个问题,在深搜的过程中去除vis标原创 2017-11-14 10:18:43 · 217 阅读 · 0 评论 -
HDU1281---棋盘游戏 (二分图匹配(坐标))
题目来源:https://vjudge.net/problem/HDU-1281题意在n*m的棋盘上,有k个空位置,只能放一种棋,叫做車,并且使得他们不能互相攻击到彼此,问,最多能放多少个車,而且,有一个点被这样定义:若是这个点不能放車,使得匹配数小于最大匹配数,那么叫做关键点,问有多少个关键点、思路以x,y坐标进行二分匹配,因为不能相互攻击,所以每个x,y坐标只能够使用一次,所以这就成了二分图匹配原创 2017-08-07 12:42:57 · 323 阅读 · 0 评论 -
NYOJ1015---二部图(判断是否是二分图:染色法)
【题目来源】:http://acm.nyist.net/JudgeOnline/problem.php?pid=1015 【题意】 给出n个点,表述了m组的点与点的关系,问是否能够分成两部分,每一部分的点都与同一部分的其他点相互之间不存在关系。 【思路】 这种题采用染色法,大致描述一下染色法,在我用二维矩阵存下点与点的关系后,我会给每一个点上色(0或者1),基本上是从第一个点开始,然后如果与原创 2017-08-02 12:30:58 · 1728 阅读 · 0 评论 -
HDU2063---过山车(二分图匹配基础题)
【题目来源】:http://acm.hdu.edu.cn/showproblem.php?pid=2063 【题意】 女生与男生配对,找出最多的配对的数目、 【思路】 按照二分图匹配里的增广路的思想,递归模拟就可以了。 增广路的大致思想是: 假设有那么一个图: 其中已经描述了对应关系,那么模拟一下匹配的过程。(全程按照代码来讲) 首先: 对A,遍历右边,找到有联系的第一个是a,原创 2017-08-02 09:46:22 · 454 阅读 · 0 评论 -
hdu1045-Fire Net(匹配,增广路,思路)
题目来源:http://cn/showproblem.php?pid=1045题意在边长不超过4的方阵里,存在黑色的块和无色的块,在方阵里放置一种碉堡,能够朝向上下左右发射炮弹,那么为了使碉堡之间不能够相互攻击,最多放几个碉堡。思路有了这张图,一切好说: 这是样例1,能够放置碉堡的组合。 比如,如果x2和y2组合了,那么就不能和y3组合了。所以这个时候问题就转化成了二分匹配。代码#inclu原创 2017-11-13 09:51:27 · 275 阅读 · 0 评论 -
HDU2444---The Accomodation of Students (二分图匹配:判断+求图)
【题目来源】:https://vjudge.net/problem/HDU-2444 【题意】 给出n个人,描述m组人与人的之间的关系,问,能不能分成两个组,每个组里面的人互相之间不存在对应的关系,若能,求出最大匹配数,不能,输出No。 【思路】 先用染色法判断是否可以分成两组,然后,用二分图匹配匈牙利算法求出最大匹配数。 【代码】#include<map>#include<string原创 2017-08-02 13:13:08 · 519 阅读 · 0 评论 -
HDU1083---Courses (二分图匹配)
题目来源:https://vjudge.net/problem/HDU-1083题意存在P门课程,从N个人里选出P个课代表,并且不能选相同的人。问是否可以选出?是输出YES,不能输出NO。思路用课程去匹配和课程本身有关系的人,若匹配不到,说明不行。代码#include<cstdio>#include<vector>#include<map>#include<stack>#include<cs原创 2017-08-07 10:00:52 · 258 阅读 · 0 评论 -
poj2289--Jamie's Contact Groups(二分多重匹配)
题目来源:http://poj.org/problem?id=2289题意电话薄利有太多人,分块整理下,已知每个人分在各自的可能的所有块里,问,使得块里的人数的最大值最小是多少。思路很显然,这是一道二分多重匹配问题,与二分匹配问题不同的是,用于存储匹配信息的一位数组变成了二维数组。 整个模拟思想与二分图最大匹配一般无二,只是,写法有点异同,这里采用的是二分枚举上限(最小值(最终结果)),然后取增广原创 2017-11-17 12:05:18 · 1110 阅读 · 0 评论 -
poj2112--Optimal Milking(二分多重匹配)
题目来源:http://poj.org/problem?id=2112题意k个挤奶机和c头牛分布在牧场上,各自的距离以(k+c)*(k+c)的二维矩阵呈现。每个机器招待牛儿上限是m头。。。为了使走的最远的牛行走的路径最短。。。。写程序进行分配。。输出最大最小值。。。思路依旧是二分多重匹配。。。 需要floyed思想去初始化机器与牛的距离。 然后就是模板。,。。。 floyed我写错了。。,。。原创 2017-11-17 18:46:38 · 222 阅读 · 0 评论 -
hdu2819-Swap(二分图匹配,思路)
题目来源:http:///showproblem.php?pid=2819题意给出一个被0和1填充的矩阵,那么怎么通过行与行或者列与列交换得到主对角线的数字都是1。输出过程,如果不能,输出-1。、思路算不上思路吧,这道题错了8次才过。主要是做题的时候一点点心得体会。 初看这道题,朦朦胧胧,思路出来了,但是不敢写,总感觉是想简单了。。。然后自己推了几组数据,发现可以。 列举了几个矩阵之后发现只要是原创 2017-11-13 23:20:00 · 195 阅读 · 0 评论 -
URAL1099-Work Scheduling(一般图最大匹配(带花树))
题目来源:https://et/problem/URAL-1099题意给出一个一般有向图,求最大匹配,并且把最大匹配的点数输出,以及匹配额点。。。思路最大匹配分为二分图最大匹配和一般图最大匹配,利用匈牙利算法或者HK算法可解,一般图最大匹配利用带花树算法可解(缩花,开花)(并查集证明是同一朵花,最近公共祖先找花。) 在增广路径的过程中,利用深搜的原理生成搜索树,假如称离根节点有偶数条边的点为偶点,原创 2017-11-25 10:47:38 · 514 阅读 · 0 评论