给定有向图,如何找到最大子点的大小,使得其中没有两个通过有向路径连接?
这个问题(或解决它的算法)是否有一个共同的名称?
(提示:“根据Dilworth的定理,这个问题实际上相当于计算传递闭包后DAG上链的最小数量。因此,这个问题可以减少到最大匹配在二分图上。“)
答案 0 :(得分:0)
我不知道这个名字,我想这是Disjoint-set data structure
的子问题使用Union Find,您可以确定所有连接的图形。
最初,每个节点都在其组中。检查每个节点并将其所有直接子节点添加到节点的组根节点。这是基本的联盟查找。
然后,最大的子集由每个组中的一个顶点组成。
在最坏的情况下,当每个节点连接到所有其他节点时,这应该采用O(n²),因为每次节点都会被检查。