【学习】最小割树
及时学习了一波最小割树。
我们有一个定理---对于n个点的一张图,本质不同的最小割最多只有n-1种。那么我们一定可以将原图构成一棵树,使得原图中两个点(x,y)的最小割等于这棵树上两点(x,y)的最小割。构造方法:我们选取集合中的两个点(x,y),然后跑一个最小割后将集合划分为X集合(x可以在残量网络上到达),Y集合(点可以在残量网络上到达y),然后对于树连一条边(x,y),边权为他们的最小割,之后递归X集合和Y集合,直到集合只剩下1个点。时间复杂度O(n * 求最小割) 证明:可以想到树上两点之间最小割为他们之间最小的那条边长度。那么就是证明对于任意$ a\in X$ , $ b \in Y $都有最小割$mincut(a,b) \le mincut(x,y) $。考虑如果存在 $mincut(a,b) \ge mincut(x,y) $,那么意味着这不是(x,y)的最小割,因为(a,b)一定还可以通过某条残量网络到达,所以不成立。 应用:由于这是一棵树的结构,这意味着我们可以很方便地求出两两之间的最小割,树的优秀结构保证我们可以套用一些数据结构,并以此利用来出题。

浙公网安备 33010602011771号