您已获得r x c网格。 i行和j列中的顶点由(i,j)表示。除了边界之外,网格中的所有顶点恰好具有四个邻居,如果i = 1,i = r,j = 1或j = c,则由(i,j)表示。你有n个起点。确定从起点到n个边界点是否存在n个顶点不相交路径。
这可以建模为最大流量问题。起点将是源,边界目标,每个边和顶点的容量为1.这可以通过使每个顶点分成两部分,在它们之间的边缘容量为1,并且具有超源和与源和目标相关的超级链接分别是容量的边缘。
在此之后我可以简单地检查每个边(s,s i )中是否存在流,其中s是超源,s i 是i th 来源i = 1到n。如果是,则该方法返回True
,否则False
。
但似乎使用max-flow在这方面有点矫枉过正。预处理图表需要一些时间,最大流量需要大约O(V(E 1/2 ))。
所以我想知道是否存在更有效的计算方法?