网络流 二分图

news/2024/11/18 3:44:18/文章来源:https://www.cnblogs.com/g1ove/p/18303382

重拾网络流,真正感受了它的妙处。

二分图

二分图是什么

简单来说,你可以把一个图分成两部分点,两部分点间有边相连,但是每部分点两两间没有边相连。

二分图判定的充要条件

一个图是二分图的充要条件是不存在奇环
充分性:对于任意一个二分图,由于每个部分内部都没有边,因此一个点从出去自己部分再回到自己部分都是经过两条边,充分性得证。

必要性:对于一个没有奇环的图,随便钦定一个点为黑色,然后与它相连的点为白色,与白色相连的点为黑色,将整个图染色,我们发现出现同色点之间存在一条边的条件就是存在奇环,所以必要性得证。

怎么判定

  • 模拟染色即可
  • 使用扩展域并查集,将每个点分成黑白两个点,然后两个点连边就是黑白合并,白黑合并,如果两个点同色已经在同一集合中,说明不是二分图,这个技巧让我们可以动态加边判定二分图,删边可以去了解一下线段树分治。

二分图的最大匹配

image
二分图最大匹配的意思就是在每个点只被覆盖一次的情况下选最多的边。
如图,这个图的最大匹配是 \(4\)

那么这个怎么算呢?
我们引入两个概念:

  • 交替路:从一个点出发,每次交替走一条匹配边和一条非匹配边
  • 增广路:从一个点出发走交替边,这条交替路未匹配边比匹配边多一条。

匈牙利算法的思想就是不断增广,找到最大匹配。
因为增广路把所有交替边和非交替边一反就是一组新的方案。

贪心的不断增广,一定可以找到正确答案。
如果你学了网络流,这里可以这样解释,对于未匹配前,我们所有的点都是有向边,即 \(U\to V\)。对于选过的边,我们建一条 \(V\to U\) 的反边,找到合法方案。

匈牙利算法事件复杂度 \(O(nm)\),可以建网络流模型达到 \(O(n\sqrt m)\)

König 定理

最小点覆盖:选最少的点,满足每条边至少有一个端点被选。
二分图中,最小点覆盖 \(=\) 最大匹配。

感性理解:如果在最大匹配选的点集中,有一条边两点都没有被选,那么这一定是一个新的匹配。

现在我们来构造并证明这个定理。

Step 1.

把所有边都剔除,只剩下最大匹配选的边,求这些边的最小点覆盖,可以得到:最小点覆盖 \(=\) 最大匹配。所以原图的最小点覆盖 \(\ge\) 最大匹配。我们来证明等号成立。

Step 2.

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/744151.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA版本与lombok版本不兼容导致报错:

我使用的idea为2023版,项目中lombok依赖为1.16.20启动项目时报错,这个错误定位是lombok中 @slf4j中的log变量找不到。我们将lombok依赖选择一个比较新一点的版本即可。

性能测试:性能测试计划

简介 性能测试计划是在进行软件或系统的性能测试之前制定的详细计划和指导文件。它描述了所需性能测试的目标、范围、测试环境、资源需求、测试策略、测试用例、时间表等重要信息。 为什么要制定性能测试计划 制定性能测试计划的主要目的是确保性能测试的有效性和可靠性。以下是…

全志科技官方Ubuntu16.04根文件系统镜像的替换和测试方法

本文主要基于全志A40i开发板——TLA40i-EVM,一款基于全志科技A40i处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,演示Ubuntu根文件系统镜像的替换和测试方法。创龙科技TLA40i-EVM评估板接口资源丰富,引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluet…

基于AM5708开发板——开箱初探+环境搭建、源码编译

本次测评板卡是创龙科技旗下的TL570x-EVM,它是一款基于TI Sitara系列AM5708ARM Cortex-A15+浮点DSPC66x处理器设计的异构多核SOC评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。评估板接口资源丰富,引出双…

雷达1——基本原理

雷达基本原理雷达1 —— 基本原理 1 雷达的原理以及基本组成 1.1 雷达工作原理简介 雷达是利用目标对电磁波的反射(或称为二次散射)现象来发现目标标并测定其位置的。 当雷达探测到目标后,就要从目标标回波中提取有关信息:可对目标的距离和空间角度定位,目标位置的变化率可由…

开发板测试手册——USB 4G 模块、GPS 定位功能操作步骤详解(3)

前 言本文适用开发环境: Windows 开发环境: Windows 7 64bit 、Windows 10 64bit Linux 开发环境: Ubuntu 14.04.3 64bit 虚拟机: VMware15.1.0 U-Boot :U-Boot-2017.01 Kernel :Linux-4.9.0 、Linux-RT-4.9.0 进行本文档操作前,请先按照调试工具安装、Linux 开发环境搭…

vue项目更改启动端口号

打开最后一项vue.config.js 添加如下代码// 用于更改端口号devServer:{port:7000}--注意在注释前边加一个英文的逗号-- 再次启动即可 更改完成

MoneyPrinterPlus全面支持本地Ollama大模型

现在,MoneyPrinterPlus除了支持大模型厂商的服务之外,还可以接入本地的Ollama大模型了。MoneyPrinterPlus现在支持批量混剪,一键AI生成视频,一键批量发布短视频这些功能了。 之前支持的大模型是常用的云厂商,比如OpenAI,Azure,Kimi,Qianfan,Baichuan,Tongyi Qwen, DeepSeek这…

Azure Function 时区设置

一,引言Azure Function 上的默认使用UTC 运行程序,我们在获取时间,或者通过时间执行某些逻辑时,返回UTC 时间,导致业务数据不正常,由于 Azure Function 是微软提供的 IaaS 托管服务,我们无法登录服务器来修改时区,那么我们今天将来实践操作,如何通过配置达到更改 Azur…

基于AM62x GPMC并口的ARM+FPGA低成本通信方案

GPMC并口简介GPMC(General Purpose Memory Controller)是TI处理器特有的通用存储器控制器接口,支持8/16bit数据位宽,支持128MB访问空间,最高时钟速率133MHz。GPMC是AM62x、AM64x、AM437x、AM335x、AM57x等处理器专用于与外部存储器设备的接口,如: (1)FPGA器件 (2)ADC器件 …

【攻防技术系列】shellcode初始

虚拟机环境搭建 【Kali】: 192.168.10.131 【win】: 192.168.10.1shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。 但是想要更充分理解什么是shellcode,我们得先了解下可执行程序和shellcode都是怎么运行的。 简…

2024年,国内外哪些企业IM即时通讯聊天软件支持OEM模式?

随着信息技术的不断发展和互联网的日益普及,IM即时通讯聊天软件在企业的日常运营中扮演着越来越重要的角色。在众多软件中,支持OEM模式的企业IM即时通讯聊天软件更是备受关注。那么,在2024年,国内外有哪些支持OEM模式的企业IM即时通讯聊天软件呢?1.飞信钉 飞信钉是一款专门…