找到满足给定约束的最小顶点集



注意:不需要形式证明或任何东西,只需要算法的一般概念,我会自己深入研究。

给定一个有向图:G(V,E),我想找到最小的顶点集T,使得对于T中的每个顶点t,以下边不存在:O(V+E)中的{(t,v) | for every v outside t}

换句话说,允许tT之外的顶点获取边,但不允许发送。

(你可以把它演示为电话,允许我从外面打电话,这是免费的,但不允许从我这边打电话(


我认为这个问题非常接近或类似于在时间复杂度为O(V+E)的有向图中找到所有强连通分量(scc(,我正在考虑构建一个新的图并运行这个算法,但对此并不完全确定。

其主要思想是将G的每个强连通分量(SCC(收缩为一个顶点,同时记录收缩图中创建每个顶点的顶点数量(G的缩合(。得到的图是一个有向无环图。答案是在度等于0的顶点中得分较低的顶点。

由于边上的限制,答案结构是强连通分量的并集,并且由于最小限制,你可以证明答案中只涉及SCC。

最新更新