我试图做一个算法,在O(V + E)时间运行一个无向图G =(V,E),给定两个顶点a和b,找到一个顶点c,它的移除将导致a和b彼此断开连接。作为其中的一部分,我试图说如果从a到b的最短路径的长度大于V/2,那么G必须对a和b有'c'。寻找一个顶点,其移除将断开两个其他
我可以直观地看到,看一张图,为什么从a到b的长度大于v/2时,必须有a和b的阻塞点。我想这是因为如果长度小于或等于v/2,那么a和b可能会相互连接而没有另一个顶点?
对于算法,我想过用Dijkstra算法找出a和b之间的最短路径,然后选择一个顶点沿该路径,将其取下,并检查是否路径是一样的。这是要走这条路还是有更好的方法?
如果a和b躺在一个循环上怎么办?此外,存在这样的'c'的必要条件是该图应该是1连通的。 – 2014-10-30 04:21:29