注意:不需要形式证明或任何东西,只需要算法的一般概念,我会自己深入研究。
给定一个有向图:G(V,E)
,我想找到最小的顶点集T
,使得对于T
中的每个顶点t
,以下边不存在:O(V+E)
中的{(t,v) | for every v outside t}
换句话说,允许t
从T
之外的顶点获取边,但不允许发送。
(你可以把它演示为电话,允许我从外面打电话,这是免费的,但不允许从我这边打电话(
我认为这个问题非常接近或类似于在时间复杂度为O(V+E)
的有向图中找到所有强连通分量(scc(,我正在考虑构建一个新的图并运行这个算法,但对此并不完全确定。
其主要思想是将G的每个强连通分量(SCC(收缩为一个顶点,同时记录收缩图中创建每个顶点的顶点数量(G的缩合(。得到的图是一个有向无环图。答案是在度等于0的顶点中得分较低的顶点。
由于边上的限制,答案结构是强连通分量的并集,并且由于最小限制,你可以证明答案中只涉及SCC。