#include<iostream>
bool find(int x){
int i,j;
for(j=1;j<=m;j++){ ///扫描每个妹子
if(line[x][j]==true && uesd[j]==false)
///如果有暧昧并且还没有标记过(这里标记的意思是这次查找试图改变过该妹子的归属问题,但是没有成功,所以就不用瞎折腾功夫了)
{
used[j]=1;
if(girl[j]==0 || find(girl[j])){
girl[j]=x;
return true;
}
}
}
return false;
}
for(i=1;i<=n;i++)
{
memset(used,0,sizeof(used));///每一步中清空
if(find(i)) all++;
}匈牙利算法模板
原文:http://blog.csdn.net/a197p/article/details/46493687