以前学的二分图匹配是假的。
这次复习,其实就是把以前背的结论加深菜B的理解。
以下一波蒟蒻口胡。
首先有几个概念,匹配边与匹配点,选择了的边叫匹配边,这些边两边的点是匹配点。
交错路即一条未匹配边,一条匹配边交错走的路径。
而增广路是从一个未匹配点,走交错路到另一个未匹配点。
假如我们将这条路径上的匹配状态取反,那可以愉快的发现,匹配数+1且不影响非这条增广路的点的匹配状态。
匈牙利算法实际上就是找增广路增广的过程。
定义:一个点能覆盖它连出去的边,用最少的点,覆盖所有的边。
首先说明一个东西,当一个二分图匹配状态不是最大匹配时,一定还有增广路的存在。
可以这么理解,将二分图建成网络流来跑,当没有跑到最大流时,一定还能继续流,因为有反向弧的存在,所以源点到汇点的通路中属于原二分图的部分一定是增广路。
还是在网络流上考虑最小点覆盖问题,当我们选择一个点时,相当于把它到源点/汇点的边割掉,当有边没被覆盖时图是连通的,所以就是最小割=最大流=最大匹配。
定义:在图中选最多的点,是它们间没有边直接或间接相连。
那么对于一条边,只能在它连向的两个点中选一个点。
所以如果选了一个点,那么相当于连向它的边都没用了。
那么应该找最少的点,将它们踢出独立集,使所有的边都被覆盖。
于是又成了最小点覆盖的问题。
综上:最大独立集=总点数-最大匹配。
刚头脑短路不知道在写什么。
就是选出的点要两两连通。
选图的补图的最大独立集,正确性显然。
定义:在简单图上选一些路径,不能有交叉,且覆盖了所有的点。
偷懒,在这篇上有写:bzoj 2150
定义:在图中选最多的点,是它们间没有边直接或间接相连。
跟二分图差不多,但是边成了路径……
于是在一条路径上只能选一个点。
好吧,我承认这一段很迷
要先floyd
综上:最大独立集=总点数-最大匹配。
爆炸oj上好像有题挺裸的,题号忘了
update(1143)
做出来十年图灵