问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

二分图匹配问题

发布网友 发布时间:2022-05-12 17:41

我来回答

2个回答

热心网友 时间:2023-08-23 12:32

g:array[1..maxn,1..maxm]of boolean;
y:array[1..maxm]of boolean;
link:array[1..maxm]of longint;
function find(v:longint):boolean;
var i:longint;
begin
for i:=1 to m do
if g[v,i] and (not y[i]) then
begin
y[i]:=true;
if (link[i]=0)or find(link[i]) then
begin
link[i]:=v;
find:=true;
exit;
end;
end;
find:=false;
end;
begin
//read the graph into array g[][]
for i:=1 to n do
begin
fillchar(y,sizeof(y),0);
if find(i) then inc(ans);
end;
我用C++的,这个PASCAL程序是别处的
其中n,m分别为2部图两边节点的个数,两边的节点分别用1..n,1..m编号
g[x][y]=true表示x,y两个点之间有边相连
link[y]记录的是当前与y节点相连的x节点
y[i]记录的是y中的i节点是否被访问过.

算法的思路是不停的找增广轨,并增加匹配的个数,增广轨顾名思义是指一条可以使匹配数变多的路径,在匹配问题中,增广轨的表现形式是一条"交错轨",也就是说这条由图的边组成的路径,它的第一条边是目前还没有参与匹配的,第二条边参与了匹配,第三条边没有..最后一条边没有参与匹配,并且始点和终点还没有被选择过.这样交错进行,显然他有奇数条边.那么对于这样一条路径,我们可以将第一条边改为已匹配,第二条边改为未匹配...以此类推.也就是将所有的边进行"反色",容易发现这样修改以后,匹配仍然是合法的,但是匹配数增加了一对.另外,单独的一条连接两个未匹配点的边显然也是交错轨.可以证明,当不能再找到增广轨时,就得到了一个最大匹配.这也就是匈牙利算法的思路.
代码中find(i)就是寻找有没有从x点i开始的增广轨,如果有就进行上述操作,代码是递归的,所以看起来不是很显然,画个图试试就很清楚了.

P.S. 我比较笨,以前学习匈牙利算法时花了不少时间来理解这段代码的意思,希望楼主能很快理解,所以用很贫乏和不规范的语言描述了一下算法.希望能满意

热心网友 时间:2023-08-23 12:32

我也正需要图像匹配和拼接的,VB的
关注ing...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 如何将二分图的最大基数匹配问题化简为最大流问题 二分图最大匹配Matlab程序(在线等,感激不尽!) 什么是二分图的匹配,最大匹配,带权最大匹配 欢迎来到河源英语作文五十字左右 求一运动品牌:这个品牌的标志是一个类似于英文字母"A"应该是中国品牌来的. 以广东省河源市家乡为主题的作文题目 “中国梦.河源美”(作文300字以上) 关于河源端午风俗的作文 核桃木是红木吗 河源中山公园游览景点400字的作文怎么写 河源市迎客大桥作文50个字以上 河源紫金风景作文300字 家乡变化作文400字写河源的 急求:作文。题为“河源,我的家乡”只要求四百字,但要中心突出,语言要精练。 河源的作文 写作文是写关于我的家乡的,写这篇作文要用什么题目,家乡是河源!! 写河源美的作文两百字 急求一篇河源,我美丽的家乡作文 我的故乡河源八百字作文 我在应用宝的设置里 选择开或关悬浮圈都有悬浮圈的显示,你们的 怎么样? 如何求字典序最小的二分图最大匹配 二分图的最大匹配是否唯一? 二分图的最佳匹配怎么写 问题描述: 写出求一个二分图的最大匹配的算法,用c++语言 怎样用ISAP求二分图的最大匹配(不要鄙视我,练习ISAP的时候感觉老是错,不要二分匹配的算法) 微PE启动U盘可以安装联想 OEM系统镜像吗 二分图匹配的匹配 二分图匹配的图 二分图最大匹配的Hopcroft-Carp算法的pascal实现,求各神牛,悬赏!!!! lED走字屏不知道软件怎么知道改字? 微pe装系统3种方法:教你制作重装系统的U盘,方法非常简单 C++这个二分图的最大匹配是多少啊 走字屏u盘怎么设置 一节5号电池约高0.6 led显示屏字往上走怎么设置 国有企业安装监控系统需要招投标吗 做一份招标文件,关于监控系统安装的其中有一项提到“项目设计能力”请问什么是项目设计能力 什么是“集合竞价”,它在什么时间进行?会影响股价吗? 现在的挂钟怎么都是一节5号电池的 单项式乘以多项式50道计算题