阅读本文前请先阅读我blog的另一篇文章:匈牙利算法求二分图的最大匹配(2008-4-12).
有了匈牙利算法的基础,该题就是一道非常简单的题目了:题目给出一些boy和girl,有一些人有罗曼史,比如A和B有罗曼史,那么B和A就有罗曼史,求最多有多少人,他们之间没有罗曼史,根据这样的规则构建一个二分图:boy和girl分两边,分别作为左右结点,根据规则如果有罗曼史就连接,否则不连接,求出最大匹配,N-max_number_of_couples/2即为要求的结果,因为比如A和B有罗曼史,那么B和A就有罗曼史,所以重复算了一次(在这种情况下A和B去掉一个即可)。
带有详细注释的代码可以在
http://download.csdn.net/user/china8848/获得