1.问题描述
我们先来了解一下相关图论的概念:
- 二分图:又称二部图。是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果结点集V可分割为两个互不相交的子集(V1,V2),并且图中的每条边(i,j),所关联的两个结点i和j分别属于这两个不同的结点集,则称G为一个二分图。
- 匹配:在图论中,一个匹配(matching)是一个边的集合,其中任意两条边都没有公共结点。如图所示就算是一个匹配:
- 最大匹配(maximum matching):一个图的所有匹配中,边数最多匹配称为这个图的最大匹配。
求二分图最大匹配可以用最大流(Maximal Flow)或者匈牙利算法(Hungarian Algorithm),但目前我们先不用这两种方法来实现求解二分图最大匹配,而是用简单的dfs实现:
现在有这么有个例子:
A同学和伙伴们去游乐场玩,准备要坐过山车。过