二分图匹配
关键在于如何建图
哪些问题可以用二分图匹配:
- 题目中明确给出了两两关系,寻找满足关系最大组数。
- 题目没给出明确的关系,但可以寻找内在的关系建立二分图求解。
哪些关系可以建立二分图求解:
- 题目明确给出两组顶点以及之间的关系HDU - 1083
- 题目给出一组顶点以及之间的关系,且满足二分图的特性HDU - 2444
- 二维坐标轴中的行和列匹配 HDU - 1045
- 插入位置的匹配 HDU - 2819 HDU - 2389
- 连续位置之间的匹配 HDU - 4185 POJ - 3020
- 求最小顶点覆盖数 HDU - 1054
- 求最大独立集 HDU - 3829
- 求单向道路数 HDU - 1054 HDU - 1151
- 扩展为多重匹配的以上部分情况 POJ - 2289
注意技巧:
- 在只有一个顶点集合且满足二分图的特性时,可以把一个点分为两个顶点进行匹配,得到最大匹配数为原图的两倍。
- 二分图最大匹配数=最小点覆盖数
- 最大独立集=顶点数-最小点覆盖数
- 单向道路数=顶点数-最大匹配数
- 如果再求单向道路数时顶点可以重复走,可以用Floyd算法扩充道路。