AcWing 861. 二分图的最大匹配—匈牙利算法

题目链接:AcWing 861. 二分图的最大匹配
问题描述
在这里插入图片描述
分析
该题是一道典型的二分图匹配模板题,求解最大匹配数,可以用匈牙利算法来解决,下面举一个例子来说明匈牙利算法是如何运行的
在这里插入图片描述
以该图为例,其中

1可以匹配a,c
2可以匹配a,b
3可以匹配c
4可以匹配b

首先为1寻找匹配,1可以匹配a,c,1首先和a匹配
在这里插入图片描述

1匹配a

接着为2寻找匹配,2可以匹配a,c,首先与a进行匹配,发现a已经被1号匹配了,那么就看看能否再为1号找到一个新的匹配,发现可以为1号找到新的匹配c
在这里插入图片描述

1匹配c
2匹配a

接着为3寻找匹配,3号可以与c匹配,但是c被1号匹配了,于是寻找能否为1号寻找其他的匹配(从a,b中选)
1号还能与a匹配,但是a被2号匹配了,于是寻找2号能否匹配(从b中选),发现可以为2号寻找到新的匹配,于是为3号找到了匹配
在这里插入图片描述

1匹配a
2匹配b
3匹配c

接着为4寻找匹配,发现无法为4寻找到新的匹配了
所以该图的最大匹配数为3
代码如下:

//临接矩阵+dfs实现
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=510;int n1,n2,m;
int f[N][N];
int h[N];
bool st[N];bool dfs(int u){for(int i=1;i<=n2;i++){if(!f[u][i]) continue;if(!st[i]){st[i]=true;if(!h[i]||dfs(h[i])){h[i]=u;return true;}}}return false;
}
int main(){int res=0;cin>>n1>>n2>>m;while(m--){int u,v;scanf("%d%d",&u,&v);f[u][v]=true;}for(int i=1;i<=n1;i++){memset(st,0,sizeof st);if(dfs(i)) res++;}cout<<res;return 0;
}

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

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

相关文章

springboot社区养老服务系统设计与实现

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1 研究背景 当…

5. 最长回文子串

引流&#xff1a;人工智能领域专栏 题目&#xff1a; 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。 【解题思路】 不要多想&#xff0c;本题就用动态规划解决。既然是动态规划&#xff0c;…

AIGC初探:提示工程 Prompt Engineering

简介 提升工程是什么 提示工程&#xff08;Prompt Engineering&#xff09;是人工智能领域中的一个概念&#xff0c;特别是在自然语言处理&#xff08;NLP&#xff09;领域中。它是一种通过设计和优化输入提示来提高AI模型表现的方法。 对于基于转换器的大型语言模型&#x…

CPU平台做视频智能分析,Lnton视频分析平台不仅支持流分析,同时也支持图片分析了

LntonAIServer最新v1.0.09版本支持图片分析了&#xff0c;经过几个月的研发&#xff0c;在原有的视频流分析的基础上&#xff0c;我们终于支持大家都非常期待的图片分析功能了&#xff0c;图片分析的功能加上&#xff0c;能有利于很多场景的展开&#xff0c;比如在烟火、明厨亮…

看CHAT如何判断php Imagick writeImages写入gif已经完毕

CHAT回复&#xff1a;Imagick::writeImages() 是同步执行的&#xff0c;也就是说这个函数会阻塞直到 GIF 文件被完全写出。所以如果这个函数没有报错并成功返回&#xff0c;那么你可以认为 GIF 文件已经被完全写出了。 如果你想要在写出 GIF 文件后立即做一些操作&#xff08;例…

Linux-故障排查

实验要求 samba仅允许192.168.1.0/24、192.168.10/24进行访问 开一台虚拟机 快照恢复到未联网安装 关闭防火墙 安全linux 编辑ens33网卡 vim /etc/sysconfig/network-scripts/ifcfg-ens33 将ens33网卡复制一份命名为ens37 cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc…

vue中key的用法

加key是提升vue渲染效率&#xff0c;减少DOM操作。 vue列表元素的更新机制&#xff1a; 当列表元素没有设置key的时候&#xff0c;vue判断是否操作这个DOM元素&#xff0c;是根据新旧两次数据的元素顺序进行对比&#xff0c;看一下元素内容是否发生变化。发生变化vue就操作这个…

如何将ElementUI组件库中的时间控件迁移到帆软报表中

需求:需要将ElementUI组件库中的时间控件迁移到帆软报表中,具体为普通报表的参数面板中,填报报表的组件中,决策报表的组件与参数面板中。 这三个场景中分别需要用到帆软报表二开平台的ParameterWidgetOptionProvider,FormWidgetOptionProvider,CellWidgetOptionProvider开…

万界星空科技云MES,助力客户快速构建数字工厂

一、MES发展趋势 1、定制化趋势 工业2.0、3.0的技术已较为成熟&#xff0c;部分制造业水平较为发达的国家已经率先进入以网络化、智能化为代表的工业4.0发展阶段,MES作为制造业规划层随着物联网等持续发展&#xff0c;为适应定制化时代&#xff0c;整体技术模块化、服务化将重…

word2019保存后的图片变模糊了怎么办?Word 2019 默认保存后压缩变模糊的问题,解决方案

Word 2019 默认保存后压缩变模糊的问题&#xff0c;解决方案 1&#xff0c;新建word 文件&#xff0c;插入一张原始图片&#xff0c;1080*1920&#xff0c;如下图&#xff1a; 2&#xff0c;保存时&#xff0c;word 2019默认选项&#xff0c;导致word 保存后&#xff0c;图片…

1944. 队列中可以看到的人数

有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff0c;heights[i] 表示第 i 个人的高度。 一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他们两人 矮 。更正式的&#xff0c;…

【Nessus】容器化使用Nessus网络漏洞扫描工具

Nessus是一款广泛使用的网络漏洞扫描工具&#xff0c;用于评估计算机系统、网络设备和应用程序中存在的安全漏洞。它由Tenable Network Security开发&#xff0c;并广泛用于网络安全行业。 Nessus可以扫描目标系统并提供有关潜在漏洞的详细报告&#xff0c;帮助安全人员发现和…