- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二分图匹配及其应用 例题1 棋盘的覆盖 一张普通的国际象棋棋盘 8*8 = 64 格中被删除了一些格子 使用1*2 的多米诺骨牌进行覆盖 求最大覆盖的格数和方案 例题1 思路 染色 建图 性质 最大匹配和完美匹配 基本概念 点集分为互补的两个集合 基本定理 判定定理: 一个图为二分图的充要条件是其所有回路均为偶数长。 如何判断一张图是否为二分图,并对节点进行正确的划分呢? 二分图的判断问题 染色法 将节点用黑白两种颜色染 实现:深度优先搜索 二分图判断问题解答1 var visited: array[1..100] of integer; data: array[1..100][1..100] of integer; n: integer; success: boolean; 二分图判断问题解答2 procedure dfs(which, color:integer); var i: integer; begin if not success then exit; if visited[which] 0 then begin if visited[which] color then success = false; exit; end; visited[which] := color; for i:=1 to n do if data[which][i] 0 then dfs(i, 3-color); end; 二分图判断问题解答3 function judge:boolean; var i: integer; begin success := true; for i:=1 to n do if visited[i] = 0 then dfs(i,1); judge := success; end. HALL 定理 二分图,存在完美匹配的充分必要条件是,对于任意一个顶点集合的子集A,它的相邻点构成的邻集X(A),都满足以下条件: HALL 定理 证明 必要性 充分性 例题2 HALL定理的应用 构造N*N的矩阵,使得每行都有1到n每个数字出现一次且仅一次,每列都有1到n每个数字出现一次且仅一次 例题2 思路 每次构造一行 循环n次构造n行 建图 如何证明? 例题3 思考题 N为奇数,M=(N-1)/2,由组合数学知: 因为M+M+1 = N 例题3 思考题 现将所有的从n个数里取m个数的组合构成一个集合A 将所有的从n个数里取m+1个数的组合构成另一个集合B 这两个集合是否存在着一一映射的关系? 使得A中的每个元素a都对应到B中的元素b,且a为b的一个子集? 例题3 思考题解答 建图 找完美匹配 如何证明? 增广路和匈牙利算法 增广路(交错轨)的概念 匈牙利算法:找增广路 如何找?算法选择? 增广路和匈牙利算法 实例1 增广路和匈牙利算法 实例2 找增广路的两种办法 广度优先搜索 深度优先搜索 广度优先算法程序 var data: array[1..100,1..100] of integer; match1,match2: array[1..100] of integer; n:integer; 广度优先算法程序 function bmatch:integer; var i,r:integer; begin for i:=1 to n do r := r + find(i); bmatch := r; end; 广度优先算法程序 function find(s:integer):integer; var i,j, d,t, qh,ql:integer; father2,queue1:array[1..100] of integer; begin fillchar(father2,sizeof(father2),0); queue1[1] := s; qh := 1; ql := 1; 广度优先算法程序 while (qh = ql) do begin for i:=0 to n do begin if (father2[i]0) or (data[queue1[qh]][i]=0) then continue; if (match2[i]0) then begin
您可能关注的文档
最近下载
- 北师大版八年级数学上册 1.1 探索勾股定理 同步测试(附答案解析).docx VIP
- 冀少版七年级上册生物全册新质教学课件(配2024年秋改版教材).pptx
- 卫生间改造施工组织设计.pdf VIP
- 《结构吊装施工》.pdf VIP
- 2025年中考数学押题:几何图形选填压轴题(含答案).pdf VIP
- 小学英语群文阅读:No Pain, No Gain 教学设计 PPT课件.pptx VIP
- 氢气管线吹扫试压方案.docx VIP
- 正余弦函数的图像和性质导学案.doc VIP
- 2021新教材必修第一册完美题型精讲(同步学习培优120个题型完美讲解).pdf VIP
- 美术五年级上册人美版 第2课 画人像(课件)(14ppt).pptx VIP
文档评论(0)