代码实现: constintINF = 0x3f3f3f3f; constintMAXN=510; intuN,vN;//u,v数目 intg[MAXN][MAXN];//构图 intlink[MAXN]; //link[v]=u表示右边对左边的匹配 boolused[MAXN];//是否访问过 booldfs(intu)//从左边开始找增广路径 { intv; for(v=0;v<vN;v++
通过顶标调整寻找最优匹配。处理动态变化的图结构时,增量式更新机制比全量重算更实用。典型应用场景包括任务分配系统,将员工集合与任务集合构成二分图,根据技能匹配度建立边连接。网络流量调度中,用算法实现服务器与请求的最优对接。生物信息学领域处理蛋白质相互作用匹配,化学键连接关系分析等领域都有实际应用。
(1)首先用(*)标记X中所有的非M-顶点,然后交替进行步骤(2),(3)。 (2)选取一个刚标记(用(*)或在步骤(3)中用(yi)标记)过的X中顶点,例如顶点xi,然后用(xi)去标记Y中顶点y,如果xi与y为同一非匹配边的两端点,且在本步骤中y尚未被标记过。重复步骤(2),直至对刚标记过的X中顶点全部完成一遍上述过程。
C语言 [二分图最大匹配] 匈牙利算法!,代码实现:constintINF=0x3f3f3f3f;constintMAXN=510;intuN,vN;//u,v数目intg[MAXN][MAXN];//构图intlink[MAXN];//link[v]=u表示右边对左边的匹配boolused[MAXN];//是否访问过b