二分图与二分图匹配

本文详细介绍了二分图的概念、判断方法以及二分图匹配的匈牙利算法,探讨了二分图在实际问题中的应用,如解决P3386和P4251等题目,并讨论了通过最大流算法实现更高效的匹配方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二分图匹配


一、前置芝士

  • 图论
  • 二分图(下面会讲)

二、二分图

定义

G = ( V , E ) G=(V,E) G=(V,E)是一个无向图,如果顶点 V V V可分割为两个互不相交的子集 ( A , B ) (A,B) (A,B),并且图中的每条边 ( i , j ) (i,j) (i,j)所关联的两个顶点 i i i j j j分别属于这两个不同的顶点集,则称图 G G G为一个二分图。学过高中数学的
话应该能看懂我在说什么

更简单的定义

顶点集 V V V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。满足这样的图就叫二分图。

还是看不懂???来一张图
请添加图片描述
图中有两个点集,点集A、B相互连边,内部不连边的图即为二分图。

二分图的判定

考虑黑白染色 (不懂的可以问度娘),如果能染色即为二分图

三、二分图匹配

匈牙利算法

本质:反悔贪心
枚举子集A中还没有匹配的点,设此点为 u i u_i ui,将它连向的点设为 v i v_i vi,看 是否已经和某一个 u j u_j uj匹配。

  • 若不是,则:直接将 u i u_i ui v i v_i v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值