Algorithm 二分匹配 最大的匹配数 (简单)

Algorithm:C++语言实现之求最大连续子数组(暴力法、分治法、分析法、动态规划法) Algorithm:C++语言实现之求最大连续子数组(暴力法、分治法、分析法、动态规划法) 目录 求最大连续子数组 T1、code暴力法 O(n3) T2、分治法 O( n*log(n) ) T3、分析法 O(n) T4、动态规划法 O(n) 求最大连续子数组 给定一个数组A[0,…,n-1],求A的连续子数组,使得该子数... 阅读详情

其实像这个求最大的匹配数的代码还是蛮简单的, 如果你会网络流那么理解起来更加方便了,不懂也没事,你可以自己画一张简单的图,把下面的过程模拟一遍 ,就知道是怎么求找了。下面的代码给出了详细的解释。

<span style="font-size:18px;">#include
#include
using namespace std ;
#define MAXN 100

bool visit[MAXN] ;//这个数组的目的 是来标记那些点已经被访问过了。
int map[MAXN][MAXN] ; //用来记录左右两边两个点的的关系。
int linker[MAXN] ;//用来放那些点已经被连接了 。

int n , m , T ;//分别表示左边与右边的点的数量

void init(){
    //初始化
    memset(map , 0 , sizeof(map)) ;
    memset(linker , -1 ,sizeof(linker)) ;

    scanf("%d%d%d" , &n, &m ,&T) ;
    //输入那些点是有联系的
    while(T--){
        int x , y ;
        scanf("%d%d" ,&x , &y ) ;
        map[x][y] = 1 ;
    }

}
int DfsFind( int x ) {

    int i ;
    for(i = 1 ; i <= m ;i++){
    
        if(map[x][i] && !visit[i]){
        
            visit[i] = true ;
            //DfsFind(linker[i]) 这是寻找某点是否有多条边连接,且构成了增广路 。
            if(linker[i] == -1 || DfsFind(linker[i]) ){
            
                linker[i] = x ;
                return true ;

            }

        }

    }
    return false ;
}
int main(){

    init () ;
    int i ,cot = 0;
    for(i = 1 ;i <= n ; i++)
    {
        memset(visit , 0 ,sizeof(visit)) ;//这里要注意 visit 每次都要初始化的
        if(DfsFind(i))
            cot++ ;        
    }
    printf("%d\n" , cot ) ;

    return 0 ;
}</span>



自建智能算力中心与第三方算力租赁的深度分析 自建智算中心和第三方算力租赁的主要区别如下:对比维度自建算力中心第三方算力租赁初期成本数千万至数亿元硬件采购+机房基建零硬件投入,按需付费(如1元/卡时)部署速度6-12个月(采购、部署、调试)即时开通,分钟级资源调度运维难度需专业IT团队,承担断电、故障等风险服务商全托管,SLA保障99.95%可用性弹性扩展扩容需重新采购硬件,周期长、成本高支持秒级弹性伸缩,应对流量峰值技术迭代硬件更新周期长,易被淘汰自动升级。 阅读详情

相关推荐

Cocos Creator 3D音频定位实战:从原理到沉浸感实现

3D音频定位是游戏开发中实现沉浸感的关键技术,其核心原理基于HRTF(头部相关传输函数)模型,模拟声音在空间中的传播与双耳感知差异。这项技术通过赋予声音空间坐标、距离衰减和方向属性,将音频从背景元素提升为可交互的环境线索,极大增强了虚拟世界的真实感与玩家的空间认知。在工程实践中,开发者需要深入理解声源、听者、衰减曲线与多普勒效应等基础概念,并合理运用音频池、优先级管理与动态混音等技术手段来平衡效果与性能。对于Cocos Creator开发者而言,无论是使用引擎原生的AudioSource组件构建轻量级方案,

weixin_30972263的博客 291

C++ STL标准库:算法<algorithm> 最小值min_element() 最大值max_element()的使用

#include <functional> #include <iostream> #include <vector> #include <algorithm> using namespace std; template <class T> void FillValue(T& vect, int first, int last) { if (last >= first) { for (int i = first; i &l

超级大洋葱的博客 3190

AWR射频仿真基本操作(一)

这里只讲述一个基本的操作: 软件是AWR 14版本

钢丝 2万+

二分图求最大匹配数,最完美匹配概念

二分图:把一个图的顶点划分为两个不相交集 UU 和VV ,使得每一条边都分别连接UU、VV中的顶点。如果存在这样的划分,则此图为一个二分图。 匹配:在图论中,一个「匹配」(matching)是一个边的集合,其中任意两条边都没有公共顶点。例如,图 3、图 4 中红色的边就是图 2 的匹配。     我们定义匹配点、匹配边、未匹配点、非匹配边,它们的含义非常显然。例如图 3 中

winycg的博客 5882

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 313

QT+QTimer+QThread实现线程内的定时任务并且和主线程进行交互

在制作qt软件时,我们经常会用到qtimer定时器以及将其在非主线程中进行使用,甚至有的时候还需要和主线程进行交互。我总结了两种用法,仅供参考。以上即为QTimer和QThread联合使用的学习记录。

u011826081的博客 5685

C++中vector利用algorithm库寻找最大值

利用algorithm库里的max_element和min_element可以得到vector的最大最小值,配合distance函数可以得到最大值的位置

Jack的博客 4084

IEEE ACCESS Please note that all author names should be listed in English.(所有作者名需用英文名列出)

很奇怪哈,我明明手稿和提交页面作者都是用的英文,但是为什么还是会提示我没用英文呢?后来给编辑发消息,回的很快,他给我发了一个截图,确实是出现中文,但是我还是不知道为啥会出现中文。直到晚上回寝室洗澡的时候忽然想起来了是不是orcid的原因,因为它会强制作者绑定一个orcid账号,而我的orcid账号的名字刚好是中文的。当然这个只是我的一个猜想,但是我觉得可能性很大。我的第二篇论文已经投稿了快三个月了,效果非常的不好,所以我打算转投IEEE ACCESS了,希望这里可以给我一点好的建议。

kuyecsl的博客 3310

二分图最大匹配---匈牙利算法(Hungarian Algorithm)

一、相关概念 1、二分图(bipartite graph) 百度百科上的定义:二分图又称作二部图, 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 通俗地说:把一个图的顶点划分为两个不相交集合 U  和 V ,使得每一条边都分别连接U...

※夏日星空※ 2739

数据分享|1961-2017年中国0.25°×0.25° 逐日地表水文数据集(VIC-CN05.1)

其中,全球径流中心(University of New Hampshire and Global Runoff Data Centre, UNH/GRDC)的复合产流场集成了观测的河道径流和水量平衡模式模拟的地表和地下径流,常被用来评估模拟的径流。在长白山、海北灌丛和千烟洲通量站,模拟与观测的逐月潜热通量的平均NSE为0.61。VIC-CN05.1受益于较准确的大气驱动场、先进的地表水文参数化方案以及更真实丰富的土壤信息,可作为中国水文气象研究的参照数据,用于陆面模式的评估和长期的趋势分析等。

J_Giser的博客 1831

Qt之QMqtt 发送图片数据

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议;MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛;在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT);其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用;

Ilson_的博客 1437

Algorithm 二分匹配的 基本信息的解释

在学习二分匹配的时候难度在于许多的概念不理解,阻碍我们学习的进程。所以要先明白这些概念都是什么。首先我先给出三个重要的公式。 1:最大独立集 = N - 最大匹配数 。(N是所有的顶点数) 2:最小点覆盖 = 最大匹配数 。 3:最小路径覆盖 = 最大独立集 。 下面我会一一解释 这些概念 。 先付上一张简单的图。 先看最大匹配数是什么 。 通俗的讲就是在 左边和右边 各找一点 有连

没有进步就是退步 539

linux 基于debian/ubuntu AB系统适配(二)-updateEngine移植

其实A/B系统的原理很简单,大部分的工作都集中在uboot上,rootfs只是起到一个辅助的作用,但这个作用也就必不可少的。你会发现在这个其中并没有kernel的参与。

badbayyj的博客 1033

MATLAB实现匈牙利算法求解二分图最大匹配

匈牙利算法(也称为Kuhn-Munkres算法)是解决二分图最大匹配问题的经典算法。

aini_lovee的博客 507

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

二分匹配详解

二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配 文本内容框架: §1图论点、边集和二分图的相关概念和性质 §2二分图最大匹配求解 匈牙利算法、Hopcroft-Karp算法 §3二分图最小覆盖集和最大独立集的构造 §4二分图最小路径覆盖求解 §5二分图带权最优匹配求解 Kuhn-Munkers算法...

weixin_30379911的博客 155

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Machine Schedule 赤裸裸的二分匹配 二部图中的点覆盖书==匹配数

                    Machine Schedule 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include &lt...

weixin_34226182的博客 73

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

二分匹配求最大匹配数和最大匹配值

求最大匹配数,匈牙利算法: #include #include using namespace std; int n; int link[1007],g[1007][1007]; bool vis[1007]; bool find(int i) { for(int j=1;j<=n;j++) if(g[i][j]&&!vis[j]) { vis[j]=tr

代码改变世界,keep coding。 1486

最大匹配_完美匹配——概念

交替路:从一个未匹配点出发,依次经过非匹配边、匹配边、非匹配边...形成的路径叫交替路。 增广路:从一个未匹配点出发,走交替路,如果途径另一个未匹配点(出发的点不算),则这条交替路称为增广路(agumenting path)。

李静静 3万+

返回数组最大值和最小值

1、使用algorithm中的min_element/max_element #include&lt;iostream&gt; #include&lt;algorithm&gt; using namespace std; int main() { int n; while (cin &gt;&gt; n) { int* p = new int[n]; for (int i = ...

Pichairen 2258

分词(Word Segmentation)-最大匹配算法

目录 1.写在前面 2.常用的分词工具 3.分词算法-最大匹配-前向最大匹配(forword-max matching) 3.1 算法思想 3.2 前向匹配代码实现 4.分词算法-最大匹配-后向最大匹配(backward-max matching) 4.1 算法思想 4.2 后向匹配代码实现 5.最大匹配的缺点 1.写在前面 我们上次总结了一个NLP系统中一般有的几个部分,包括分词、清洗数据、标准化、特征提取、建模、评估模型等。这篇文章我们重点总结分词这个部分的知识点。...

敲代码的乔帮主 1828

C++ STL 算法:最大值和最小值

1、vmin_element(b,e) 2、vmin_element(b,e,op)//op是二元谓词,可以是函数、函数对象 3、vmax_element(b,e) 4、vmax_element(b,e,op)//同上 #include #include #include using namespace std; bool absLess(int elem1, int e

梦幻DUO的游戏开发之路 4484

什么是算法(Algorithm)?(应用实例:最大子列和问题)

解决问题方法的效率与算法的巧妙程度有关,描述算法的时候我们主要关心解决问题所采用的思想,而不是具体实现细节。什么是好的算法?有两个指标:空间复杂度S(n)(根据算法写成的程序在执行时占用存储单元的长度)和时间复杂度T(n)(根据算法写成的程序在执行时耗费时间的长度)。 1.1 算法 算法的五个基本特征: 输入、输出、有穷性、确定性(每一条指令充分明确)、可行性 复杂度的渐进表示法(上...

qq_38358499的博客 671

STL算法------最小值和最大值

1.min_element(b, e) 2.min_element(b, e, op) 3.max_element(b, e) 4.max_element(b, e, op) #include #include #include using namespace std; bool absLess( int elem1, int elem2 ) { return abs(elem1

洛冰翼的专栏 1345

algorithm头文件下的常用函数

algorithm头文件下的常用函数max()、min()和abs()swap()reverse()next_permutation()fill()sort()如何使用sort排序如何实现比较函数cmp基本数据类型数组的排序结构体数组的排序容器的排序lower_bound()和upper_bound()   使用algorithm头文件,需要在头文件下面加一行“using namespace std;”才能正常使用。 max()、min()和abs()   max(x,y)和min(x,y)分别返回x和y中

苣篛 648
上一篇: Algorithm 网络流最大流(代码)(Edmond-Karp算法)
下一篇: Algorithm 二分匹配的 基本信息的解释
CallMeJiaGu
博客等级 码龄12年 149粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值