当我们遇到这样的问题:
给定一个 (n) 个点 (m) 条边的无向连通图,多次询问两点之间的最小割
我们通常要用到最小割树。
博客
建树
分治。记录当前点集,然后随便找俩点当 (s) 和 (t),跑一遍最小割,然后在“最小割树”上把 (s) 和 (t) 连边,并且根据“属于s的点”还是“属于t的点”将当前点集分为两部分,直到当前点集大小为1为止。
性质
-
最小割树上的边 ((u, v)),其权值为原图中 (u) 到 (v) 的最小割,断开最小割树上的 ((u, v)),分成的两个连通块分别是原图中跑完最小割后“属于 (u) 的点”和“属于 (v) 的点”。
-
原图中 (u) 到 (v) 的最小割等于最小割树上 (u) 到 (v) 的最小边权。
容易感性理解。具体证明见:博客
例题
受实力限制,我只做过一些比较水的最小割树的题。最小割树还需深刻理解。