Unverified Commit cd257c9b authored by 折耳泽尔w's avatar 折耳泽尔w Committed by GitHub
Browse files

Update bi-graph.md

parent 06e0289b
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -125,9 +125,9 @@ int main() {

除此之外,该问题还可以转化为 [最大流](graph/flow/max-flow) 问题解决。

设 $G=<V_1, V_2, E>$ 是一个二分图,不妨在图中添加源点 $s$ 和汇点 $t$ ,从 $s$ 向 $V_1$ 中的所有节点连一条流量为 1 的边, $V_2$ 中的所有节点也向 $t$ 连一条流量为 1 的边,并且将 $V_1$ 和 $V_2$ 之间的边改成从 $V_1$ 指向 $V_2$ ,流量为 1 的边此时该图的最大流量即为最大匹配数,流量流过的边和点构成的子图即为 $G$ 的最大匹配。
设 $G=<V_1, V_2, E>$ 是一个二分图,不妨在图中添加源点 $s$ 和汇点 $t$ ,从 $s$ 向 $V_1$ 中的所有节点连一条流量为 1 的边, $V_2$ 中的所有节点也向 $t$ 连一条流量为 1 的边,并且将 $V_1$ 和 $V_2$ 之间的边改成从 $V_1$ 指向 $V_2$ ,流量为 1 的边此时该图的最大流量即为最大匹配数,流量流过的边和点构成的子图即为 $G$ 的最大匹配。

若使用 Dinic 算法,则时间复杂度为 $O(N /sqrt{M+N})$ 。
若使用 Dinic 算法,则时间复杂度为 $O(N \sqrt{M+N})$ 。

例题参考:

@@ -139,7 +139,7 @@ int main() {

该问题可以转化为 [费用流](graph/flow/min-cost) 问题解决。

设 $G=<V_1, V_2, E>$ 是一个带边权的二分图,不妨在图中添加源点 $s$ 和汇点 $t$ ,从 $s$ 向 $V_1$ 中的所有节点连一条流量为 1,费用为 0 的边,从 $V_1$ 和 $V_2$ 的所有节点向 $t$ 连一条流量为 1,费用为 0 的边,并且将 $V_1$ 和 $V_2$ 之间的边改成从 $V_1$ 指向 $V_2$ ,流量为 1,费用为边权的边此时该图的最大费最大流的费用即为最大权匹配的边权和,流量流过的边和点构成的子图(删去新添加的点和边后)即为 $G$ 的最大权匹配。
设 $G=<V_1, V_2, E>$ 是一个带边权的二分图,不妨在图中添加源点 $s$ 和汇点 $t$ ,从 $s$ 向 $V_1$ 中的所有节点连一条流量为 1,费用为 0 的边,从 $V_1$ 和 $V_2$ 的所有节点向 $t$ 连一条流量为 1,费用为 0 的边,并且将 $V_1$ 和 $V_2$ 之间的边改成从 $V_1$ 指向 $V_2$ ,流量为 1,费用为边权的边此时该图的最大费最大流的费用即为最大权匹配的边权和,流量流过的边和点构成的子图(删去新添加的点和边后)即为 $G$ 的最大权匹配。

### 一般图匹配