- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二分图匹配142536Bi-partite graph二分图的定义: 二分图是这样的一个图,它的顶点可以分为两个集合X和Y。所有的边关联的两个顶点中,恰好一个属于集合X,一个属于集合Y。二分图的匹配: 给定一个二分图G,M为G边集的一个子集,如果M满足当中的任意两条边都不依附于同一个顶点,则称M是一个匹配。二分图的最大匹配定义: 图中包含边数最多的匹配称为图的最大匹配。如右图所示:蓝色部分就构成一个最大匹配,同时它也是一个完美匹配 完美匹配: 如果所有点都在匹配边上,称这个最大 匹配是完美匹配。 二分图的最大匹配匈牙利算法(时间复杂度O(nm)) 其思想是用宽度优先搜索来找增广路径(和floodfill算法类似转化为单位容量简单网络的最大流问题在二分图的基础上,加入源点s和汇点t,让s与每个X结点连一条边,每个Y结点和t连一条边,所有弧的容量为1。这样,饱和弧就对应着匹配边。二分图的最大匹配匈牙利算法:寻找增广路: 初始时最大匹配为空 for 二分图左半边的每个点i do 从点i出发寻找增广路径 如果找到,则把它取反 (即增加了总了匹配数)。看一道例题:PKU 1469PKU 1469 一共有N个学生跟P门课程,一个学生可以任意选一门或多门课,问是否达成: 1.每个学生代表的都是不同的课(如果一个学生选修的那门课,那么他就可以代表这门课) 2.每门课都有一个代表PKU1469输入为:P N(课程数跟学生数)接着有P行,格式为Count studenti studenti+1 ……studentcount(Count表示对课程1感兴趣的学生数,接着有Count个学生)如第一行2 1 2表示学生1跟学生2对课程1感兴趣输出为:若每门课都能找到一位代表则输出”YES”,否则为”NO”142536PKU1469假如有三个学生跟三门课程,学生1,2,3.为了跟学生区分,假设3个课程为4,5,6左边节点是学生,右边节点是课程,下图表示,学生1对课程4,5感兴趣,学生2对课程5,6感兴趣,学生3对课程6感兴趣于是问题就变为在二分图中寻找最大匹配,只要这个最大匹配大于或等于课程数P,那么就达到要求了.142536寻找最大匹配的匈牙利算法流程假如我们用xM数组表示左边节点对其右边节点的匹配,yM表示右边节点对其左边节点的匹配,初始化为-1;首先我们先看节点1,寻找下一条边,假设找到节点5,因为1跟5都还没匹配,所以找到一个匹配.标记,xM[1]=5,yM[5]=1;增广路如图中箭头所示现在重点看节点3,当寻找下一条边时,如图中的蓝边,我们发现节点6的yM[6]=2;已经匹配了.此时我们就转到节点6的匹配点2上去,发现节点2的另一条边2-5中节点5也已经匹配了,yM[5]=1;继续转到节点1,发现节点1的边1-4中节点4还没匹配.于是我们找到了一个增广路径把图中红色线去掉更改各自的匹配点111444蓝色线加上找到一个更好的匹配222555333666总结所以流程就是:1,对于一个未匹配的节点u,寻找它的每条边,如果它的边上的另一个节点v还没匹配则表明找到了一个匹配,直接转步骤4;2,假如节点u它边上的另一个节点v已经匹配,那么就转向跟v匹配的节点,假设是w,然后再对w重复1,2的步骤,即寻找增广路.3,假如我们在1,2步过程中找到一条增广路, 那么修改各自对应的匹配点,转步骤4,若无增广路, 则退出.4,匹配数+1;最小点覆盖最小覆盖: 最小覆盖要求用最少的点(X集合或Y集合的都行)让每条边都至少和其中一个点关联。可以证明:最少的点(即覆盖数)=最大匹配数 M简单的证明如下:(1)M个是足够的。只需要让它们覆盖最大匹配的M条边,则其它边一定被覆盖(如果有边e不被覆盖,把e加入后得到一个更大的匹配)(2)M个是必需的,仅考虑形成最大匹配的这M条边,由于它们两两之间没有公共点,因此至少需要M个点才可以把它们覆盖 PKU 3041:(类似的有PKU3020)问题:假如你现在正处在一个N*N的矩阵中,这个矩阵里面有K个障碍物,你拥有一把武器,一发弹药一次能消灭一行或一列的障碍物,求最小的弹药消灭全部障碍物输入为:N K接下来有K行,每行包含障碍物的坐标,即r行c列;如:3 4 1 11 32 23 2 输出为:花费最小的弹药数PKU3041对于上面那个数据我们可以用下面的表示,0表示无障碍物,1表示有;1 0 10 1 00 1 0首先,我们利用行跟列做二分图:行列如果第i行的第j列有障碍物,则在图中左边的i行连一条边到右边的j列,上面的数据就对应左图1122于是问题就转化成最小点覆盖的问题.求最大匹配即可.33PKU2226现在我们看一道构图比较复杂的题:PKU2226DAG图的最小路径覆盖用尽量少的不相交简单路径覆盖有向无环(DAG)G的所有顶
您可能关注的文档
- 临时用电培训.pptx
- 临港开发区战略报告.pptx
- 丸美赢在执行.pptx
- 为什么做保险.pptx
- 丹青花园营销诊断报告.pptx
- 为优异绩效而管理含义.pptx
- 为什么要发展现代农业.pptx
- 为市场领先者设计营销战略.pptx
- 为执行力打工.pptx
- 为成功而沟通.pptx
- 2026年投资项目管理师之宏观经济政策考试题库300道附答案【精练】.docx
- 超星尔雅学习通《形势与政策(2025春)》章节测试附完整答案(网校专用).docx
- 超星尔雅学习通《形势与政策(2025春)》章节测试带答案(研优卷).docx
- 超星尔雅学习通《形势与政策(2026春)》章节测试题附参考答案(实用).docx
- 2026年刑法知识考试题库a4版.docx
- 2026年刑法知识考试题库标准卷.docx
- 2026福建泉州市面向华南理工大学选优生选拔引进考试题库新版.docx
- 2026年国家电网招聘之文学哲学类考试题库300道含完整答案(夺冠).docx
- 2026年法律职业资格之法律职业客观题一考试题库300道含答案【巩固】.docx
- 2026年刑法知识考试题库【精练】.docx
原创力文档


文档评论(0)