匈牙利算法(一)

简介: 复习acwing算法基础课的内容,本篇为讲解基础算法:匈牙利算法,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。

文章目录

前言

一、匈牙利算法

二、AcWing 861. 二分图的最大匹配

本题分析

AC代码

三、时间复杂度


前言

复习acwing算法基础课的内容,本篇为讲解基础算法:匈牙利算法,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。


一、匈牙利算法

下图来自:ACWing算法基础课

image.png

匈牙利算法是用来寻找二分图最大匹配的算法具体实现方式下面做讲解:

我们把两个集合分为男,女两个集合,其中的每一条黑线都意味着这一对儿男女之间有感情,我们要做的,是看看能最多有多少对男女能够实现配对,下面我们一步一步看:

image.png

我们遍历每一个男生,那么一号男嘉宾和二号女嘉宾之间有一条线,证明他俩可成,我们标注一下

image.png

显然我们不能脚踏两条船,第一个男生已经心有所属,所以我们来看第二个男生,发现二号男嘉宾可以与一号女嘉宾实现配对,我们同样标记一下,代表他俩在一起了

image.png

接着,看到三号男嘉宾只喜欢二号女嘉宾,没有其他的选项了,那么我们把他们连一条线

image.png

尴尬的情况发生了,我们的二号女嘉宾居然脚踏两条船!!!,显然社会上不允许这样,那么二号女嘉宾就甩掉了一号男嘉宾

image.png

但是,一号男嘉宾也不是没有准备,一号男嘉宾还有一位“备胎”,四号女嘉宾,所以被甩了之后,就找上了四号女嘉宾

image.png

那么最后来看我们的四号男嘉宾,四号男嘉宾和三号女嘉宾之间有感情,同样上述操作

image.png

至此,所有的男女嘉宾都找到了自己的心上人,匈牙利算法结束



目录
相关文章
|
9月前
|
算法 调度
转:使用匈牙利算法对局域网共享软件有哪些好处
在局域网共享软件中,匈牙利算法主要应用于解决资源分配的问题。局域网共享软件可能存在多个用户同时访问同一文件或打印机的情况,为了确保资源的公平共享,需要对资源进行分配。
61 2
|
11月前
|
算法 决策智能 计算机视觉
智慧交通day02-车流量检测实现07:匈牙利算法
有一种很特别的图,就做二分图,那什么是二分图呢?就是能分成两组,U,V。其中,U上的点不能相互连通,只能连去V中的点,同理,V中的点不能相互连通,只能连去U中的点。这样,就叫做二分图。
108 0
|
算法
匈牙利算法模板
匈牙利算法
58 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的视频手部检测算法matlab仿真
基于yolov2深度学习网络的视频手部检测算法matlab仿真
|
1月前
|
算法
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
23 2
|
1月前
|
算法
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
39 1
|
4天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
8天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
15 0
|
11天前
|
机器学习/深度学习 算法
【MATLAB】GA_ELM神经网络时序预测算法
【MATLAB】GA_ELM神经网络时序预测算法
282 9