图论——二分图
二分图:
二分图又称二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A, j in B), 则称图G是二分图。
匹配:
给定一个二分图,在G的一个子图G’中,如果G’的边集中的任意两条边都不依附于同一个顶点,则称G’的边集为G的一个匹配
最大匹配: 边数最多
顶点覆盖:
在顶点集合中,选取一部分顶点,这些顶点能够把所有的边都覆盖了。这些点就是顶点覆盖集
最小顶点覆盖: 顶点数最小
边覆盖:
在边集合中,选取一部分边,覆盖尽可能多的点
最小边覆盖: 边数最小
独立集:
在所有的顶点中选取一些顶点,这些顶点两两之间没有连线,这些点就叫独立集
最大独立集: 顶点最多
路径覆盖:
在图中找一些路径,这些路径覆盖图中所有的顶点,每个顶点都只与一条路径相关联。
最小路径覆盖: 路径个数最小
公式
最大团 = 补图的最大独立集
最大独立集 = 最小边覆盖 = V - 最大匹配
最小顶点覆盖 = 最大匹配数
套路模板
最小路径覆盖(不交叉)
在有向无环图上,假设已经求出最小路径覆盖是x,那么,在这x条路径上,一定有V-x条边。
那么显然使得边数最大,即可求得最小路径。
每一条路径上,v-1条边,不妨令每条边的起点代表这条边,问题转化为求有后继结点的顶点个数。
建图如下
注意事项:拆点后注意数据范围。
HIT训练赛:http://acm.hust.edu.cn/vjudge/contest/128794#overview