二分最大匹配 匈牙利算法
http://blog.csdn.net/dark_scope/article/details/8880547
1 bool find(int x){ 2 int i,j; 3 for (j=1;j<=m;j++){ //扫描每个妹子 4 if (line[x][j]==true && used[j]==false) 5 //如果有暧昧并且还没有标记过(这里标记的意思是这次查找曾试图改变过该妹子的归属问题,但是没有成功,所以就不用瞎费工夫了) 6 { 7 used[j]=1; 8 if (girl[j]==0 || find(girl[j])) { 9 //名花无主或者能腾出个位置来,这里使用递归 10 girl[j]=x; 11 return true; 12 } 13 } 14 } 15 return false; 16 } 17 for (i=1;i<=n;i++) 18 { 19 memset(used,0,sizeof(used)); //这个在每一步中清空 20 if find(i) all+=1; 21 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。