Loading docs/graph/bi-graph.md +3 −3 Original line number Diff line number Diff line Loading @@ -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})$ 。 例题参考: Loading @@ -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$ 的最大权匹配。 ### 一般图匹配 Loading Loading
docs/graph/bi-graph.md +3 −3 Original line number Diff line number Diff line Loading @@ -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})$ 。 例题参考: Loading @@ -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$ 的最大权匹配。 ### 一般图匹配 Loading