
图论-二分图匹配
文章平均质量分 71
Rain722
这个作者很懒,什么都没留下…
展开
-
二分图匹配及匈牙利算法学习
趣写算法系列之--匈牙利算法大神博客链接:http://blog.youkuaiyun.com/dark_scope/article/details/8880547匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。原创 2017-03-09 16:47:38 · 415 阅读 · 0 评论 -
HDU2389Rain on your Parade(二分图最大匹配之Hopcroft-Karp)
大意:在一个二维坐标系上有nx个人和ny把伞,每个人都有自己的移动速度,问有多少人可以再tmin内移动到不同的雨伞处(不允许两个人共用一把伞)。思路:很容易可以看出,这是一个二分图模型,雨伞和人一一对应,典型的匹配问题,而又要求最大,所以是二分最大匹配问题,再看看题目的数据量,nx:3000,ny:3000,极限情况下有9000000条边,很明显,匈牙利算法可能会TLE,所以为了降低时间复杂度原创 2017-07-18 14:47:12 · 444 阅读 · 0 评论 -
【最小边覆盖 & 最小路径覆盖 & 最小顶点覆盖 & 最大独立集 & 最大团】
最小边覆盖 = 最大独立集 = |V| - 最大匹配数这个是在原图是二分图上进行的最小路径覆盖和最小边覆盖不同,不要求给的图是二分图,而是要求是N x N的有向图,不能有环,然后根据原图构造二分图,构造方法是将点一分为二,如,i分为i1和i2然后如果i和j有边,那么就在i1和j2之间连一条边。由此构成二分图然后最小路径覆盖 = n-m,n为原图的点的个数,m为新造二分图转载 2017-07-19 13:18:46 · 727 阅读 · 0 评论 -
HDU 1151 Air Raid(最小路径覆盖)
题目大意:在一个城镇,有m个路口,和n条路,这些路都是单向的,而且路不会形成环,现在要弄一些伞兵去巡查这个城镇,伞兵只能沿着路的方向走,问最少需要多少伞兵才能把所有的路口搜一遍。解题思路:这个题目就转换成求解有向无环图的最小路径覆盖问题了。 一个结论:有向无环图的最小路径覆盖=该图的顶点数-该图(原图)的最大匹配。而路径覆盖的定义就是:原创 2017-07-19 13:41:07 · 311 阅读 · 0 评论 -
POJ 2594 Treasure Exploration(最小路径覆盖+Floyd求传递闭包)
题目链接题目大意: 一个有向图中, 有若干条连接的路线, 问最少放多少个机器人,可以将整个图上的点都走过。 最小路径覆盖问题。分析: 这时最小路径覆盖问题, 最小路径覆盖 = |V| - 最大匹配数。 (有关最小路径覆盖,最大匹配问题,相关概念不懂得点这里) 当然做这道题还有一个坑!! 如果有向图的边有相交的情况,那么就不能简单的对原图求二分匹配了 详细讲解看这原创 2017-07-19 14:37:58 · 442 阅读 · 0 评论 -
Codeforces557D Vitaly and Cycle 【染色判二分图 + 组合数学】
题目链接:Codeforces 557D Vitaly and CycleD. Vitaly and Cycletime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outpu原创 2017-08-02 19:54:42 · 391 阅读 · 0 评论 -
POJ 3692 Kindergarten(二分图最大团)
题意:有G个女孩,B个男孩。女孩彼此互相认识,男孩也彼此互相认识。有M对男孩和女孩是认识的。分别是(g1,b1),.....(gm,bm)。现在老师要在这G+B个小孩中挑出一些人,条件是这些人都互相认识。问最多可以挑出多少人。 思路:女孩之间互相认识,男孩之间互相认识,所以我们可以将连边定义为:不认识。即:若两个节点之间有连边,则两个节点互不认识。故原创 2017-08-06 19:20:52 · 346 阅读 · 0 评论 -
BZOJ2034最大收益 [贪心优化特殊图最优匹配]
2034: [2009国家集训队]最大收益Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 498 Solved: 209[Submit][Status][Discuss]Description给出N件单位时间任务,对于第i件任务,如果要完成该任务,需要占用[Si, Ti]间的某个时刻,且完成后会有Vi的收益。求最大收益。 N原创 2017-08-29 19:07:24 · 784 阅读 · 0 评论 -
HDU5556 Land of Farms(最大独立集)
题目大意:一个N*M的矩阵,其中“.”代表空地,“0-9”代表古代建筑,我们如果选择了一个编号的古代建筑想要建立,那么对应就要将全部该编号的建筑建立起来,如果在空地上建筑,只建立当前点。问最多能够建立多少种建筑,并且每两种建筑之间没有公共边。题目意识比较难懂,我们来分析一下第一组样例:[cpp] view plain copy原创 2017-09-28 11:26:57 · 630 阅读 · 0 评论 -
SPOJ Fast Maximum Matching(二分图最大匹配Hopcroft-Carp)
题目大意:有n1头公牛和n2头母牛,给出公母之间的m对配对关系,求最大匹配数。数据范围: 1 注意:该模板存边使用的是前向星,且二部图左右两边的点集编号均从1开始#include#include#include#include#includeusing namespace std;const int maxn = 5e4+5;const int ma原创 2017-07-18 15:43:21 · 395 阅读 · 0 评论 -
POJ2289Jamie's Contact Groups(二分图多重匹配+二分)
题意: 给定一个规模为n的名单,要将名单中的人归到m个组中,给出每个人可能的分组号,需要确定一种分配方案,使得最大规模的组最小。思路: 一对多的二分图的多重匹配。二分图的多重匹配算法的实现类似于匈牙利算法,对于集合C中的元素xi,找到一个与其相连的元素yi后,检查匈牙利算法的两个条件是否成立,若yi未被匹配,则将xi,yi匹配。否则,如果与yi匹配的元素已经达到上限,那么在所有与yi匹配的元素中原创 2017-07-21 16:15:41 · 774 阅读 · 0 评论 -
HDU2444The Accomodation of Students(二分图判断+最大匹配)
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2444题意:有n个学生,有m对人是认识的,每一对认识的人能分到一间房,问能否把n个学生分成两部分,每部分内的学生互不认识,而两部分之间的学生认识。如果可以分成两部分,就算出房间最多需要多少间,否则就输出No。首先判断是否为二分图,然后判断最大匹配#include#includ原创 2017-03-09 16:42:45 · 448 阅读 · 0 评论 -
HDU1083 Courses(二分图匹配)
题目http://acm.hdu.edu.cn/showproblem.php?pid=1083描述:有p门的课,每门课都有若干学生,现在要为每个课程分配一名课代表,每个学生只能担任一门课的课代表,如果每个课都能找到课代表,则输出"YES",否则"NO"。思想:采用二分图的最大匹配,对课程—学生关系建立一个图,进行二分图的最大匹配,如果最大匹配数==课程数,说明能够满足要求,否则不原创 2017-06-06 17:11:59 · 325 阅读 · 0 评论 -
HDU1045Fire Net(二分图匹配)
Fire NetTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11954 Accepted Submission(s): 7189Problem DescriptionSuppose that we原创 2017-06-06 15:53:20 · 887 阅读 · 0 评论 -
HDU2819Swap(二分图最大匹配)
题目大意:交换图的某些行或者是某些列(可以都换),使得这个N*N的图对角线上全部都是1.分析:这里先说明的一点就是,如果通过交换某些行没有办法的到解的话,那么只交换列 或者 既交换行又交换列 那也没办法得到解。其实个人感觉这个可以用矩阵的秩来解释,所有的对角线都是1,所以也就是矩阵的秩就是N,所以秩小于N就无解。另外,根据矩阵的性质,任意交换矩阵的两行 或者 两列,矩阵的秩原创 2017-06-07 19:15:14 · 611 阅读 · 0 评论 -
HDU1054Strategic Game(最小顶点覆盖数)
我们来先了解一下什么是最小顶点覆盖;图G的顶点覆盖是一个顶点集合V,使得G中的每一条边都接触V中的至少一个顶点。我们称集合V覆盖了G的边。最小顶点覆盖是用最少的顶点来覆盖所有的边。顶点覆盖数是最小顶点覆盖的大小。相应地,图G的边覆盖是一个边集合E,使得G中的每一个顶点都接触E中的至少一条边。如果只说覆盖,则通常是指顶点覆盖,而不是边覆盖。在二分图中 :最大匹配原创 2017-07-19 11:31:34 · 604 阅读 · 0 评论 -
POJ 1466 Girls and Boys(二分图最大独立集)
大佬博客:http://blog.youkuaiyun.com/u013480600/article/details/38638219POJ 1466 Girls and Boys(二分图最大独立集)http://poj.org/problem?id=1466题意: 在一群男女同学之间存在”浪漫关系”,且该关系只存在于男同学与女同学之间.现在给出你比如2号学生与4号学生原创 2017-07-17 20:54:02 · 460 阅读 · 0 评论 -
HDU 4185 Oil Skimming(二分图最大匹配)
大佬博客:http://blog.youkuaiyun.com/u013480600/article/details/38686499HDU 4185 Oil Skimming(二分图最大匹配)http://acm.hdu.edu.cn/showproblem.php?pid=4185题意: 有个N*N的字符矩阵,你必须用竖直或水平的1*2小矩阵去覆盖字符矩阵中原创 2017-07-17 20:57:44 · 376 阅读 · 0 评论 -
HDU3829Cat VS Dog(二分图最大独立集)
题目描述:动物园有N只猫,M只狗,P个小孩。每个小孩都有自己喜欢的动物和讨厌的动物,如果他喜欢狗,那么就讨厌猫,如果他讨厌猫,那么他就喜欢狗。某个小孩能开心,当且仅当他喜欢的动物留在动物园和讨厌的动物不在动物园里面。现让管理员通过带走某些动物,问最多能使多少个孩子开心。解题思路:题目有一个关键点,孩子喜欢猫,必然不喜欢狗,反之。 即猫和猫之间,狗和狗之间一定不存在矛盾关原创 2017-07-21 14:02:27 · 424 阅读 · 0 评论 -
HDU1281棋盘游戏(二分匹配与增广链)
来自大佬的分析:http://blog.youkuaiyun.com/mishifangxiangdefeng/article/details/7109139题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1281 题目描述:在一个N*M大小的棋盘中,有K个空位置,(1)在这些空位置上最多能放多少的“车”(一行或原创 2017-06-07 16:07:13 · 642 阅读 · 0 评论