Logo ryp 的博客

博客

匈牙利算法简证

...
ryp
2025-12-01 12:50:21
She's not square

本文章由 WyOJ Shojo 从洛谷专栏拉取,原发布时间为 2024-05-25 16:41:23

简单描述一下匈牙利算法:

首先设 $m_u$ 表示每个点的匹配。

尝试对每个点 $u$ 进行匹配,对每一个 $(u, v) \in E$:

  • 如果 $v$ 未匹配就直接匹配;

  • 否则,尝试重新匹配 $m_v$;如果成功,那么 $(u, v)$ 相配;否则失配,继续找下一个 $v$。

注意到这个过程就是找增广路的过程。第一种情况中的增广路是 $u \to v$;第二种情况中,若设 $m_v$ 的新匹配是 $m_v'$,那么增广路是 $u \to v \to m_v \to m_v'$。

不难注意到,两种情况都使整体匹配数加一,故一个最大匹配中一定是没有增广路的。

再证充分性。

充分性太难了不好证 但是分讨可以证

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。