ACM/ICPC暑期集训讲座 二分图匹配 cnhawk 2007.7.25.

Slides:



Advertisements
Similar presentations
老中醫點評各種水果 整理: Henry 按鍵換頁 音樂: 終身美麗 ( 純音樂 ) 蘋果 一日一蘋果,醫生遠離我 脾胃虛寒型的慢性腹瀉需用錫紙包裹、 煨熟吃 1. 含最多果糖、有機酸、果膠、微量元素 果膠:屬於可溶性纖維,促進膽固醇代謝、 降低膽固醇水平、促進脂肪排出; 2. 微量元素:鉀擴張血管、有利高血壓患者;
Advertisements

蔡祥熙醫生 內分泌及糖尿料 伊利沙伯醫院. 問題一 “ 你食咁多糖, 唔怪得之有糖尿病, 我一粒糖都 唔食就無事啦 !” 吃糖份高食物會否導致糖尿病?
發展遲緩幼兒評估 - 語言評量工具 組員 : 498I0017 蔡幸玟。 499I0041 林桂蘭。 499i0015 廖淑婷 499I0052 胡嘉馨。 499I0054 張瑜庭。 499I0061 郭子涵。 499I0069 黃莉筑。
老人茶帶來的新時尚 9A2D0024 黃秀雯 9A2D0036 莊承憲 9A2D0041 蘇意婷 9A2D0045 盧家淑 9A2D0050 王宥棋 9A21C017 吳雅芝.
延边大学 2016年度本科专业评估指标体系解读.
無性生殖是由親代直接產生新的個體,並不涉及配子的生成與結合。
非传染性疾病 第四节.
大學入學考試中心 九十六學度學科能力測驗試題 國文科 -哈利波特番外篇-
三年高考政治真题 (八) 个人收入的分配.
随歌谣学地理 地球是个圆球体,这个事实人共知 探求地球形状史,伟人献身我辈记 庐山起义是半径,五点一亿表面积 要知赤道有多长,坐地日行八万里.
主題四 與世界相遇 (2-行旅蒼穹).
专题二 文学类文本·小说阅读(选考) ——把握人事,洞察百态 补上一课 如何读懂小说 第1讲 情节 第2讲 人物 第3讲 环境 
第一部分 微专题强化练.
欧洲西部 要点·疑点·考点 欧洲西部 1. 自然环境 位置:欧洲西半部,北临北冰洋,西临大西洋,南临地中海
情緒與壓力管理 手部舒壓運動 第六組.
自然的食物就是你最好的醫生 上課之前先聽一首歌~稻香 歌詞、音樂還不錯和大家分享一下
物体的浮沉条件 F >G F =G F =G F <G (A)上浮 (D) 悬浮 (B)漂浮 (C) 下沉 视频 浮 物 浮 物 浮 物 浮
王老吉多加宝之争分析.
怎樣吃才健康? 賴亭竹.
胫腓骨骨折.
第23课 美术的辉煌 米勒:《拾穗者》(法国).
第二单元(6-9课) 近代化的探索.
50公斤的案例 身體質量指數(BMI) 體重(50公斤) = 身高(1.45公尺)×1.45身高(公尺) *145公分=1.45公尺.
碘缺乏病.
與美味的第一類親密接觸 講師:莊淑妃.
中華民國95年9月26日.
新帝國主義開港 (一)臺灣成為侵略者目標 1.背景: A.買賣利豐=鴉片進口+米、糖、樟腦、煤炭出口 B.地理位置優越=航行安全+商貿中心 2.新帝國主義: A.19C中:英、法、美、日為主 B.臺被迫開港通商,割地賠款,簽訂不平等條約.
Write by Zhuangli(zjfc3)
岳麓版必修三第二单元 第七课 汉字与书法 授课人:谢俊涛(中教一级) 莆田擢英中学.
歌仔戲 與 歌舞伎 4a 張淇惠 4a11b025 許巧嬑 4a 倪曼凌 4a1c0004 楊長梵
洋流(大规模的海水运动).
佳力科技 防爆叉车的应用、发展 浙江佳力科技股份有限公司.
——哈尔滨工程大学实验教学与学生科技创新汇报
汽车空调制冷系统 作者:陈永刚.
第2讲 古代中华文明的曲折发展、 成熟与繁荣 ——魏晋、隋唐、宋元的政治、经济、 思想文化.
阿尔茨海默病的康复评定 阿尔茨海默病是一种进行性发展的致死性神经退行性疾病,主要表现为认知功能障碍,认知功能属于大脑皮质的高级活动范畴,包括感觉、知觉、注意、记忆、理解和智能等。表现在日常生活能力进行性减退,并有各种神经精神症状和行为障碍。 康复1233 林涵 陈佳琪.
簡報 石門水庫及其集水區整治計畫 之水庫集水區保育 第2次評鑑 中華民國97年01月23日 交通部公路總局第一區養護工程處
成才之路 · 语文 人教版 · 必修2 路漫漫其修远兮 吾将上下而求索.
北京大学网络与信息系统研究所人工智能实验室
请同学们思考下列问题:.
2 分子的热运动.
<<广东省中小学生体能素质评价标准>>
烟花爆竹企业开复工 安 全 培 训参考课件 浏 阳 市 安 监 局.
文學與生活-期末報告 赤壁之戰 組員名單 : 4A2L0031 王柔之 4A2L0033 劉兆偉 4A0L0063 謝商裕
102年度路平專案執行情形 簡報單位:工務處養護工程科 簡 報 人:楊 松 樺 簡報日期:103年4月1日.
第20讲 农业生产和区位选择 [考纲要求] 掌握农业的主要区位因素极其影响; 学习农业区位选择的方法
学校:爱周中学 授课人:高超 (地理) 授课班级:高二(四)班
常规免疫接种率 监测 免疫规划科 章梦然.
入托、入学儿童预防接种证查验 武平县疾病预防控制中心 林传贵
面向海洋的开放地区——珠江三角洲 山东省高青县实验中学:郑宝田.
突出人才培养特色,构建面向就业的人才培养机制
第7章 图论基础与应用 PART A 《可视化计算》.
词类活用.
欢迎来到我们的课堂!.
中国高等教育 质量保证情况介绍 教育部高等教育司评估处 朱洪涛 2005年5月24日.
婚喪生育補助表修正說明 臺南市政府人事處給與科.
狂賀!妝品系同學美容乙級通過 妝品系三甲 學號 姓名 AB 陳柔諺 AB 陳思妤 AB 張蔡婷安
產品語意 班級:夜四技產設三甲 學生:鄭舜鴻 學號:9A01C023 指導教師:唐蔚.
电子邮件基本应用 主讲:张巧威.
最大網路流 Max (Network) Flow
探討量販店經營策略與消費者滿意度之影響 以全聯福利中心與家樂福為例
美丽的旋转.
2.2.1直线与平面平行的判定 麒麟高级中学 王明彬.
序偶及直角坐標系統.
Advanced Competitive Programming
第二專長學分班第三次作業.
平面的基本性质 江苏省泰州中学 数学组 姜莹. 平面的基本性质 江苏省泰州中学 数学组 姜莹.
最大網路流 Max (Network) Flow
Maximum Flow.
11506: Angry Programmer ★★★★☆ 題組:Contest Set Archive with Online Judge
Presentation transcript:

ACM/ICPC暑期集训讲座 二分图匹配 cnhawk 2007.7.25

经典问题——工作分配 一个公司有n个工作岗位空缺,每个岗位空缺需要有一定资格的人来填补。现在有m个人申请这n个工作。由于每个人工作能力不同,所以不同的人能胜任不同的工作。 现在已知每个人所能胜任的若干工作,求这m个人最多可以填补几个工作岗位。 每个人只能做一份工作,每个工作岗位也只需要一个人

二分图的一般表述 一个图的点,可以分割成两个集合X和Y 在集合内部没有边 任何一条边的两个端点都分属不同的集合

匹配 在工作分配的问题中,我们给出一个可行的分配方案,就是一个匹配。如果这个匹配是最优的(可以填补的工作岗位最多),就是最大匹配。

匹配 匹配的一般定义:匹配是二分图所有边的一个子集,在这个子集中任意两条边都没有公共点。 最大匹配:边数最多的一个匹配 *覆盖的概念:与匹配相关的顶点集

二分图最大匹配问题 现在,工作分配问题变成了求一个二分图中最大匹配的问题。 二分匹配的经典算法: 匈牙利算法(Ford-Fulkerson算法的变形)

基本概念 左边/右边 交错链(增广路) 对于一个已有的匹配而言 从未被覆盖的点出发,寻找一个交错链。 交错链长度为奇数,它上面的边依次为:未选,已选,未选,已选…未选 1 1 2 2 3 3 4 4

交错链 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

交错链 几个重要的性质: 1.对于一个已有的匹配(可以为空匹配)可以通过更改交错链上的边来获取更大的匹配 2.如果我们找到了一个匹配,并且再也找不到交错链了,那么这个匹配是最大匹配

匈牙利算法 匈牙利算法的思路就是:不停地在一个二分图中寻找交错链,直到找不到为止。 寻找交错链可以用BFS或DFS,其中BFS效率很高,但实现较复杂。

寻找交错链的算法 1,从左某一个未被匹配的点开始寻找,把所有与它相连的点加进队列 2,如果在右边找到一个未被匹配的点,则算法结束 3,如果在右边找到一个已经被匹配了的点,则看看它是与左边的那个点相匹配的,从相匹配的那个点出发在右边找其它的点,把它们加入队列

寻找交错链 对每一个左边的没有被匹配的点进行BFS,如果在右边直接找到一个点没有被匹配,那么我们就可以增加一条匹配的边 1 1 2 2 3 4 4 1 2

寻找交错链 对每一个左边的没有被匹配的点进行BFS,如果在右边直接找到一个点没有被匹配,那么我们就可以增加一条匹配的边 1 1 2 2 3 4 4 1 3

寻找交错链 对每一个左边的没有被匹配的点进行BFS,如果在右边直接找到一个点没有被匹配,那么我们就可以增加一条匹配的边 1 1 2 2 3 4 4 2 4

寻找交错链 寻找交错链:如果在右边找到一个已经被匹配了的点,则看看它是与左边的哪个点相匹配的,从相匹配的那个点出发在右边找其它的点,把它们加入队列 1 1 2 2 3 3 4 4 2 4

寻找交错链 1 1 2 2 3 3 4 4

寻找交错链的算法 1,从左某一个未被匹配的点开始寻找,把所有与它相连的点加进队列 2,如果在右边找到一个未被匹配的点,则算法结束 3,如果在右边找到一个已经被匹配了的点,则看看它是与左边的哪个点相匹配的,从相匹配的那个点出发在右边找点,把它们加入队列

代码(模板) Bipartite.cpp 二分图匹配(邻接矩阵表示) 邻接表的图需要修改一下

复杂度分析 对于一个有V个点,E条边的二分图 每一次BFS的复杂度为O(E) 所以总的复杂度是O(VE)

经典问题——棋盘覆盖 在一个m行n列的棋盘上,有些点被禁止,问能否用1x2的多米诺骨牌覆盖其他位置? 如果不能全部覆盖,则最多可以覆盖多少个小格?

经典问题——棋盘覆盖 FZU-1467 与这个问题几乎一样http://acm.fzu.edu.cn/problem.php?pid=1467 解决思路: 先给棋盘染色!

经典问题——棋盘覆盖 将棋盘染成黑白二色,则:任意一个多米诺骨牌必定会覆盖一个白色的格子和一个黑色的格子! 问题变成了黑点与白点之间的二分匹配,相邻的点之间有一条边。

作业 TOJ-1050 FZU-1467(数据范围较大,必须用邻接表实现) 二分图匹配是一个比较难的内容,如果不能深入了解算法,可以先搞清楚它可以解决哪些问题,遇到此类问题只要套上模板就可以AC