1.二分图的最大匹配
学习链接,这个文章的讲解很直观:
http://blog.csdn.net/pi9nc/article/details/11848327
当然,这篇文章讲的,主要是无权二分图,其给了bfs的模板和dfs的模板,虽然dfs比起bfs在稀疏图上效果欠佳,但是应用最广泛
模板链接,虽然上面这个写得全,有理有据,不过模板比较好的还是下面这几个,有注释,且都是dfs。。。里面题目不少,多看看挺好的
二分图的最大匹配: http://blog.csdn.net/hackbuteer1/article/details/7398008
二分图匹配(匈牙利算法): http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.html
2.一般图的最大匹配
学习链接,这里主要是带花树算法
http://blog.csdn.net/xuezhongfenfei/article/details/10148445
详细解释了为什么叫带花树算法,也是无权的
模板链接,也是有不少题目的,模板很清晰
【带花树专题】: http://twinsclover.is-programmer.com/posts/21598.html
【任意图匹配】: http://www.cnblogs.com/arbitrary/p/3293108.html
3.一些例题
【hdu4687】
使用的方法太暴力...
题目是给你一个一般图,然后呢,给你一些可匹配项,最后根据给出的可匹配项算出最大的匹配个数,然后把没有选中的匹配选项序号输出
做法呢,就是,先算一下最大匹配项cont,然后呢,我们去掉其中一条边上的两个点,看看去掉后最大匹配项是不是cont-1,是那么就说明我们去掉的匹配边是属于最大匹配方法中的,不是,那么就不是。遍历所有边,将满足条件的边标为true,不满足的为false,bingo!
4 4(人数4,可匹配选项个数4) 1 3(匹配项,共 4 行) 2 3 2 4 3 1 6 6(第二组数据) 1 2 3 2 3 4 5 2 5 4 5 6
1(无用匹配项个数) 2(无用匹配项编号) 3 2 4 5
解题代码:
http://www.xuebuyuan.com/609524.html