首页 新闻 会员 周边 捐助

一道简单的图论题

0
悬赏园豆:50 [待解决问题]

给定一个图 和a,b两个点,如何判断从a到b是否有必经之点,若有则求出该点。请给一个比较好的算法。

c++
问题补充:

请给一个比较好的算法。

honghuidan的主页 honghuidan | 初学一级 | 园豆:152
提问于:2013-08-31 10:13
< >
分享
所有回答(8)
1

这个简单啊,你把这个点(设为c)删除,再求a-》b的最短路径路径,如果不可达则必须经过c,有向图,无向图都适用的。

小AI | 园豆:354 (菜鸟二级) | 2013-08-31 17:02

审好题,又不是让你判断给定点是否为必经点。。

支持(0) 反对(0) 嗷嗷 | 园豆:757 (小虾三级) | 2013-09-02 15:05

@嗷嗷: 确实,那就这样:求出a-》b之间的所有可达路径,每条路径包含所经过的顶点,然后求这些路径里面顶点的交集,所得的顶点交集Vn即为所求,复杂度应该不高吧。如果Vn数量大于2(排除a,b),肯定有必须经过的点,Vn排除a,b就是。

支持(0) 反对(0) 小AI | 园豆:354 (菜鸟二级) | 2013-09-02 15:43

@小AI: 这就是传说中的暴力破解吗?还有更复杂的算法吗

支持(0) 反对(0) 嗷嗷 | 园豆:757 (小虾三级) | 2013-09-02 21:16

@嗷嗷: show me a better one

支持(0) 反对(0) 小AI | 园豆:354 (菜鸟二级) | 2013-09-02 21:24
0

支持楼上

二十三号同学 | 园豆:974 (小虾三级) | 2013-09-01 11:05
0

支持楼上

Albert Fei | 园豆:2102 (老鸟四级) | 2013-09-01 20:09
0

一楼牛逼

beiyeren | 园豆:244 (菜鸟二级) | 2013-09-02 09:28
0

+1

若雪封尘 | 园豆:663 (小虾三级) | 2013-09-02 13:53
0

+1

猿人谷 | 园豆:215 (菜鸟二级) | 2013-09-02 14:31
0

假设有a到b有n条路径,先取两条路径,对比顶点,如果发现有交点,则加入第三条路径,从a点开始从头对比,如果到b点还无交点,则答案为否。

dk163 | 园豆:227 (菜鸟二级) | 2013-09-05 17:43
0

首先bfs测试ab是否可以连通,如果可以,再对每个点设置标志位,每记录一个点被删除,再测是否ab连通,如果不连通,则该点为必经点,再恢复正常标志;继续对其他的点进行循环测试。这样可以判别出所有必经点。

jiu~ | 园豆:444 (菜鸟二级) | 2015-05-09 22:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册