【AcWing】861. 二分图的最大匹配(匈牙利算法)

news2024/9/20 7:57:49

匈牙利算法,他可以在比较快的时间复杂度之内告诉我们左边和右边成功匹配的最大数是多少

匹配指的是边的数量,成功的匹配指的是两个未被使用的点之间存在一条边(就不存在两条边共用了一个点的)。

匈牙利算法可以返回成功匹配的最大匹配数是多少。

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

const int N=510,M=1e5+10;
int h[N],e[M],ne[M],idx;
int match[N];//match表示的是这个妹子匹配的男生是谁,0代表没有匹配。
bool st[N];//表示这个女生是否考虑过
int n1,n2,m;

void add(int a,int b){
    e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}

bool find(int x){
    for(int i=h[x];i!=-1;i=ne[i]){//枚举看上妹子的集合
        int j=e[i];
        if(!st[j]){//如果这个妹子没有考虑过
            st[j]=true;//表示这个妹子已经被考虑了
            if(match[j] == 0 || find(match[j])){//妹子没有匹配的男生 或 这个男生可以找到其他的妹子代替
            //如果这个被替换妹子的男生的其他相连的女生被匹配了的话,会让匹配的那个男生再去找其他妹子,就是套娃,牵一发动所有有关系的人。每个男生进入find都会对已经被考虑的妹子变为true,不会造成重复考虑。
                match[j]=x;
                return true;   
            }
        }
    }
    return false;
}

int main(){
    cin>>n1>>n2>>m;
    memset(h,-1,sizeof h);
    while(m--){
        int a,b;
        cin>>a>>b;
        add(a,b);//虽然是无向边,但只会找一下左边点的所有出边,只需要存左边指向右边就可以了。
    }
    
    int res=0;//匹配数量
	//就依次来分析一下每个男生,该找哪个妹子。
    for(int i=1;i<=n1;i++){
        memset(st,false,sizeof st);//每一次分析之前,清空所有妹子,表示这些妹子都还没考虑过,保证每个妹子我只考虑一遍。
        if(find(i)) res++;//判断是否能找到妹子
    }
    
    cout<<res<<endl;
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AcWing】860. 染色法判定二分图

二分图&#xff0c;把所有点划分到两边去&#xff0c;使得所有边都是在集合之间的&#xff0c;集合内部没有边。 一个图是二分图&#xff0c;当且仅当图中不含奇数环(环的边数是奇数)。这是个充分必要条件&#xff0c;是二分图就一定不含奇数环&#xff1b;不含奇数环就一定是…

工业设备网关在智能工厂建设中发挥的作用,以某汽车制造厂为例

在当今工业4.0的大潮中&#xff0c;智能化和数字化已经成为制造业发展的关键驱动力。工业设备网关&#xff0c;作为连接工业现场设备与上层系统的纽带&#xff0c;其作用不可小觑。本文将以某汽车制造厂的智能化改造项目为例&#xff0c;详细探讨工业设备网关在实际应用中的优势…

CS5363|CS5263升级方案|DP转HDMI 4K60HZ芯片方案

CS5363是一种高度集成的单芯片&#xff0c;适用于多个细分市场和显示应用&#xff0c;如Typec扩展、手机/电脑投屏、扩展底座、投影仪等。 CS5363管脚分布情况如下&#xff1a; CS5363是一款高度集成的单芯片&#xff0c;适用于多个mGeneral 支持最高分辨率/定时4k60Hz 支持…

饿了么官方霸王餐API接口该如何对接?

外卖霸王餐API接口是一种为餐饮行业设计的应用程序编程接口&#xff0c;它允许第三方平台或应用程序与外卖平台进行数据交换和功能集成。通过这种接口&#xff0c;商家可以实现自动化管理&#xff0c;提高运营效率&#xff0c;同时为消费者提供更加便捷和个性化的服务体验。 霸…

记录debug分析nacos源码

nacos源码分析 一、环境构建二、源码分析1. 启动类2. 源码的中的案例3.. 服务订阅流程梳理3.1. 从 NamingFactory.createNamingService(properties);说起3.2. 服务订阅总结 4. 服务注册流程梳理4.1. 从 naming.registerInstance("nacos.test.3", "11.11.11.11&q…

【文心智能体】通过工作流使用知识库来实现信息查询输出,一键查看旅游相关信息,让出行多一份信心

欢迎来到《小5讲堂》 这是《文心智能体平台》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 创建灵感基本配置头像名称和简介人物设定角色与目标思考路…

一文读懂数据血缘分析原理与建设方法

什么是数据血缘分析?数据血缘为数据全生命周期过程中的数据关系&#xff0c;包括数据特征的变化&#xff0c;即数据的来龙去脉。主要内容包括数据的来源、数据的加工方式、映射关系以及数据的流出和消费。数据血缘分析就是针对数据分析中的血缘关系做分析&#xff0c;主要包含…

第二证券:10倍“妖股”一天暴跌98% 揭秘港股那些做局套路

尽管港股行情全体低迷&#xff0c;自上一年以来港股商场仍不乏短短时日暴升10倍以上的疑似“妖股”&#xff0c;这些公司普遍具有一起的特征&#xff1a;刚上市不久的新股、次新股&#xff0c;市值较小、股权高度会集。 证券时报记者通过查询发现&#xff0c;这类股票反面往往…

图片无损缩放PhotoZoom Pro 9.0.2绿色版 +免费赠送PhotoZoom激活优惠代码

PhotoZoom Pro 9.0.2 是一款专业的图片无损缩放软件&#xff0c;该软件采用了 benvista s-spline 独特技术&#xff0c;增强了对图像格式的支持&#xff0c;多处理器支持&#xff0c;GPU 加速&#xff0c;win10和 Photoshop CC 支持。带来一流的数字图形扩展与缩减技术。该软件…

torch torchvision 安装失败解决方法

按照安装教程在安装Torch torchvision的时候报错 报错内容&#xff1a; ERROR: Could not find a version that satisfies the requirement torch (from versions: none)ERROR: No matching distribution found for torch 出现这个情况&#xff0c;有说要换源什么的&#xff…

博客常见问题

hexo g 生成静态文件 hexo s 本地预览 hexo d 同步上传到git 1、输入hexo d &#xff0c;上传到git时&#xff0c;报错 看了下git的配置&#xff0c;没有问题&#xff0c;单机过去也能直接到我的git上 可能是传不过去&#xff0c;token的问题 最下面开发者设置&#xff0c;找到…

单片机毕业设计-基于单片机的运动手环

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP…

2024年【浙江省安全员-C证】找解析及浙江省安全员-C证模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 浙江省安全员-C证找解析是安全生产模拟考试一点通生成的&#xff0c;浙江省安全员-C证证模拟考试题库是根据浙江省安全员-C证最新版教材汇编出浙江省安全员-C证仿真模拟考试。2024年【浙江省安全员-C证】找解析及浙江…

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件&#xff1a; 2.调用utility bar api的方式有两种&#xff1a; 方法一&#xff0c;通过lwc调用&#xff1a; import {LightningElement,api ,wire } from lwc; import { publish, MessageContext } from lightning/messageService; imp…

新手烤鸡测试——单烤没拉满

文章目录 电脑配置先来一波硬件信息硬盘检测cpu-Z跑分AIDA64单烤FPUDistInfoDiskMark查看硬盘读写次数 电脑配置先来一波 图吧下载地址 硬件信息 硬盘检测 cpu-Z跑分 AIDA64单烤FPU 压榨cpu性能结果 DistInfo 计算了一下到几天快两个月的使用时间也没差 DiskMark查看硬盘读…

批量复制指定文件夹——EXCEL VBA 实现

工作中往往需要复制特定文件夹&#xff0c;例如&#xff0c;一个文件夹中有100个文件夹&#xff0c;我只需要复制其中50个文件夹&#xff0c;这50个文件夹的名字放入excel表中第一列&#xff0c;从第二行开始&#xff08;注意&#xff1a;第一行的表头不能覆盖&#xff09;&…

三十三、Gin的中间件

目录 定义&#xff1a; 一、处理请求前执行 1、模拟请求前需要鉴权 2、使用use方法 3、实验 二、处理请求后执行 1、在具体方法中添加输出方便观察整个处理请求过程生命周期 2、在next方法后增加输出即可在处理完成请求后执行内容 3、最终执行结果 定义&#xff1a; 在…

大模型LLM算法工程师技术面试指南

大模型LLM算法工程师技术面试指南 AI大模型全套学习资料 “最先掌握AI的人&#xff0c;将会比较晚掌握AI的人有竞争优势”。 这句话&#xff0c;放在计算机、互联网、移动互联网的开局时期&#xff0c;都是一样的道理。 我在一线互联网企业工作十余年里&#xff0c;指导过不少…

防跌倒识别摄像机

防跌倒识别摄像机 是一种结合了人工智能技术和监控摄像技术的先进设备&#xff0c;旨在通过实时监测和分析监控画面中的行为动作&#xff0c;及时发现并预防跌倒事件的发生。这种摄像机在医疗、养老院、家庭等场所有着广泛的应用前景。 防跌倒识别摄像机在医疗领域具有重要意义…

社群空间站付费入群系统易支付版全套搭建教程

社群空间站9.9付费入群系统易支付版全套搭建教程 1.创建站点 2.搭建环境 php7.2 3.上传源码包 数据库批量修改sq9.dongge1.icu s10.dongge1.icu 改为你的域名 4.上传数据库 修改数据库文件/data/config/ 5.访问域名 6.账户密码 admin 123456 7.易支付修改地址是在/data…