这个简单啊,你把这个点(设为c)删除,再求a-》b的最短路径路径,如果不可达则必须经过c,有向图,无向图都适用的。
审好题,又不是让你判断给定点是否为必经点。。
@嗷嗷: 确实,那就这样:求出a-》b之间的所有可达路径,每条路径包含所经过的顶点,然后求这些路径里面顶点的交集,所得的顶点交集Vn即为所求,复杂度应该不高吧。如果Vn数量大于2(排除a,b),肯定有必须经过的点,Vn排除a,b就是。
@小AI: 这就是传说中的暴力破解吗?还有更复杂的算法吗
@嗷嗷: show me a better one
支持楼上
支持楼上
一楼牛逼
+1
+1
假设有a到b有n条路径,先取两条路径,对比顶点,如果发现有交点,则加入第三条路径,从a点开始从头对比,如果到b点还无交点,则答案为否。
首先bfs测试ab是否可以连通,如果可以,再对每个点设置标志位,每记录一个点被删除,再测是否ab连通,如果不连通,则该点为必经点,再恢复正常标志;继续对其他的点进行循环测试。这样可以判别出所有必经点。