二分图匹配 匈牙利算法我现在已经看懂了那个find函数,但是现在我不明白为什么在主程序中调用这样的话就可以实现二分图匹配

二分图匹配 匈牙利算法
我现在已经看懂了那个find函数,但是现在我不明白为什么在主程序中调用这样的话就可以实现二分图匹配?
ans:=0;
for i:=1 to n do
if find(i)then inc(ans);
writeln(ans);
假设i=1的时候匹配了一个点K,后来1-k这条路作为某条增广轨的路又被删掉了,在循环结束时1和K都没有匹配,那这样结果应该再+1,为什么不在主程序最外面加上一个while true do,然后判断是否有解在跳出呢?可能说得有点乱,希望高人指点.
beanb 1年前 已收到1个回答 举报

lichensky 幼苗

共回答了18个问题采纳率:83.3% 举报

1匹配K..然后假设从M找增广路时,找到了K点,这时LInk[k]=1..那么再重新从1找增广路.如果找到L,
则1与L匹配成功,M则与K匹配

1年前

8
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.028 s. - webmaster@yulucn.com