匈牙利算法的核心思想就是 ?騰空間, 有條件 創造,沒條件也要創造!
bool find(int x){int i,j;for (j=1;j<=m;j++){ //掃描每個被匹配的人 if (line[x][j]==true && used[j]==false) //如果有關系并且還沒有標記過(這里標記的意思是這次查找曾試圖改變過的歸屬問題,但是沒有成功,//所以就不用瞎費工夫了){used[j]=1;if (girl[j]==0 || find(girl[j])) { //名花無主或者能騰出個位置來,這里使用遞歸girl[j]=x;return true;}}}return false;
}主函數中
main
for (i=1;i<=n;i++)
{memset(used,0,sizeof(used)); //這個在每一步中清空if find(i) resl++;
}