二分匹配的常用建图方法
2015-05-31 15:12
246 查看
学习了一些常用建图方法,又理解了一遍二分,感觉更加清晰了。
1.行列匹配法;在一个矩阵中,加入上面一些点有人,现在有一些箭能将一行或一列的人杀死,问最少需要多少箭?
因为箭要最少,所以要尽可能的在一行或一列上,即最小顶点覆盖问题。这时可以通过行列来进行二分匹配;假如位置(1,1),(1,3),(2,2),
(3,1) 则横坐标1 2 3,纵坐标 1 2 3间有一定的关系,最小点覆盖=最大匹配数;
2.反建法;假如有一个嫉妒封建的老师,他不希望同学间发生恋情。老师发现,满足一下条件的同学发生恋情的几率小:
1》身高差〉40 2》性别相同 3》爱好不同的音乐4》爱好同类型的运动;由于相同性别的同学不可能发生恋情,所以就成了男生和女生间的关系;
由于正面直接求答案可能有误,可以先求出能发生恋情的可能,把有上面任一条件的男女连一条边,然后一减就是答案了;
3.拆点法;拆点法适用于解决最小路径覆盖问题;给出一张图,需要找到一些路径,可以把所有的点都经过,并且路径不产生交叉。这时可以把点1拆为x1,y1、
点2拆为x2,y2.........;这时求二分图最大匹配,可以得到每个匹配对应一个路径覆盖,将2个点连在一起,最后所有点减去匹配数(即相连的点只要一条既可)就是
最小路径覆盖数;最小路径覆盖=最大独立集
最小路径覆盖:假如有一张图,用尽可能的路径把所有的点经历一遍。hdu4160;
4:一行变多行,一列变多列;如第一种题目一样,不能再同一行或列有点,但是现在增加了墙,某一行多了一个墙,那么这一行就成了2行;用这种方法既可;
5:黑白染色法(也称奇偶匹配);一张图中有一些点,现在要用1*2的长条去覆盖这些点,问至少需要多少;我是这样理解的:,先对每个能放的点标号,对于每个点,如果他的上下左右能够放
长条,那么就从该点到其方向上的点连一条边,这样建图就完成了;求一次最大匹配既可;hdu4185
1.行列匹配法;在一个矩阵中,加入上面一些点有人,现在有一些箭能将一行或一列的人杀死,问最少需要多少箭?
因为箭要最少,所以要尽可能的在一行或一列上,即最小顶点覆盖问题。这时可以通过行列来进行二分匹配;假如位置(1,1),(1,3),(2,2),
(3,1) 则横坐标1 2 3,纵坐标 1 2 3间有一定的关系,最小点覆盖=最大匹配数;
2.反建法;假如有一个嫉妒封建的老师,他不希望同学间发生恋情。老师发现,满足一下条件的同学发生恋情的几率小:
1》身高差〉40 2》性别相同 3》爱好不同的音乐4》爱好同类型的运动;由于相同性别的同学不可能发生恋情,所以就成了男生和女生间的关系;
由于正面直接求答案可能有误,可以先求出能发生恋情的可能,把有上面任一条件的男女连一条边,然后一减就是答案了;
3.拆点法;拆点法适用于解决最小路径覆盖问题;给出一张图,需要找到一些路径,可以把所有的点都经过,并且路径不产生交叉。这时可以把点1拆为x1,y1、
点2拆为x2,y2.........;这时求二分图最大匹配,可以得到每个匹配对应一个路径覆盖,将2个点连在一起,最后所有点减去匹配数(即相连的点只要一条既可)就是
最小路径覆盖数;最小路径覆盖=最大独立集
最小路径覆盖:假如有一张图,用尽可能的路径把所有的点经历一遍。hdu4160;
4:一行变多行,一列变多列;如第一种题目一样,不能再同一行或列有点,但是现在增加了墙,某一行多了一个墙,那么这一行就成了2行;用这种方法既可;
5:黑白染色法(也称奇偶匹配);一张图中有一些点,现在要用1*2的长条去覆盖这些点,问至少需要多少;我是这样理解的:,先对每个能放的点标号,对于每个点,如果他的上下左右能够放
长条,那么就从该点到其方向上的点连一条边,这样建图就完成了;求一次最大匹配既可;hdu4185
相关文章推荐
- JS——DOM小结(二)操作节点
- java io操作整理
- ath9k中的EEPROM
- java复习(五)
- 沟通的艺术与处世的智慧 读书笔记
- TCP/IP 笔记 1.2 链 路 层
- cocos2dx 中各种运动和速度
- java架构解密——深入再造AOP
- Lucene基础(二)--索引的操作
- C#面试常见题目源代码汇总
- ImageView的布局及高度设置
- Windows平台下Python2.7中pip的安装方法
- 用python多线程抓取网站图片,速度极快
- 黑马程序员——IO的使用
- 测试计划
- Arduino数字电路中的高低电平~~~
- Internal Sorting: Quicksort-2: Sorting by Exchanging
- Project Euler:Problem 20 Factorial digit sum
- Dijkstra算法java现实
- MVC入门——删除页