最大匹配:在二分图中,最多的没有公共顶点的边的数量。(用匈牙利算法)
最小点覆盖:在二分图中,所有边至少有一个顶点在一个点集S中,这样的点集S的最少元素个数。(最小点覆盖=最大匹配)
最大独立点集:在二分图中,选择一些点,使得这些点两两没有边直接相连。(最大独立点集=总点数-最大匹配)
DAG转化成二分图:将一个点拆分成两个点:入点和出点,连一条边(如AB),就把A的出点和B的入点相连。
DAG的链:一条从A走到B的路径上的所有点。
DAG的反链:DAG中,一个点集,使得该点集中,任意两个不相同的点,都不能从一个点走到另一个点,那么这个点集就是这个DAG的反链。
最小路径覆盖:在DAG中,用最少的不相交的链覆盖整个DAG上的点(转化成二分图,则最小路径覆盖=点数-二分图的最大匹配)
最小链覆盖:在DAG中,用最少的相交的链覆盖整个DAG上的点(先用Floyd传递闭包,然后对于一个点A,将A与所有与A相连的点连接,则最小链覆盖=转化后的图的最小路径覆盖)
最长反链:在DAG中,点数最大的反链(最长反链=最小链覆盖)