//可做网络流和二分图模板
最大独立集是指一个图的点的最大子集,满足任意两点没有边直接相连。另一个相对的概念是最大团,在这个最大的子集中任意两点都有边直接相连,可以发现,补图的最大团就是原图的最大独立集。
在二分图中,|最大独立集|=n-|最大匹配|,这是因为首先有n-2*|最大匹配|个独立点,另外可以证明匹配中每条边可以选入一个点。
用dinic求最大匹配时,最后一次bfs的标记可以用来寻找最大独立集。我们称靠近起点一侧是左侧,另一侧为右侧。level>0的左侧点和level=0的右侧点就是一个最大独立集。这是一种优先选择左侧可行点的选法,不光有在最大匹配中未使用的那些,还有通过左右左“重获新生”的点,也就是,通过偶数次连边到达的左侧点,它保证没有边直接相连,直接相连的那些右侧点都因有效的level值而被pass了。右侧点只选那些不会干扰到这些政策的,即无法到达的那些。这里我们注意,可以到达的右侧点一定是已经使用过(它的出边已被消耗)的,要不然就会形成新的匹配了。
这一题又出现了蜜汁t,经大佬提醒数组开大了就好了。当越界不多时还是有效内存,所以不会报re,坑惨我了。
1 |
|