请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

1回答

不可以。low[v] 表示通过 v 的另一条路(不是dfs树上的路)可以到达的最低 ord 节点。low[w] 则是通过 w 的另一条路(不是dfs树上的路)可以到达的最低 ord 节点。low[v] 和 low[w] 之间不构成关系,和 v-w 是否是桥没关系。


比如下面的例子:

https://img1.sycdn.imooc.com//szimg/5d8131db096b8a7409481586.jpg


可以测试一下,按照你的咯及,会错误的判断 v-w 是桥,因为 low[w] > low[v],但是,v-w不是桥。


相应测试图的数据:

4 5
0 1
0 2
1 2
1 3
2 3

继续加油!:)

5 回复 有任何疑惑可以回复我~
  • 提问者 慕桂英雄 #1
    我是明白了这个low和ord的语义,但是好像举不出反例说服自己。。
    low[w] 一开始会被赋值成和ord[w]一样,随着dfs的遍历,ord[w]不会改变,而low如果能到达祖先节点时可能变小的。
    课上的那几个图,g,g2,g3 我用 if (low[w]> low[v]) 做出来的结果和 if (low[w]>ord[v]) 是一样的。。
    但我知道不对,只是不知道反例是长什么样的。。
    回复 有任何疑惑可以回复我~ 2019-09-17 11:04:12
  • 提问者 慕桂英雄 #2
    其实是上周力扣周赛里有一个找桥的问题,虽然90分钟内没做完,不过后来做的时候发现了这个问题, if (low[w]> low[v]) 可以通过大对数的测试用例,不过有个10000个节点的测试用例没通过。那个图点太多,也不知道长什么样子。。。
    回复 有任何疑惑可以回复我~ 2019-09-17 11:07:05
  • liuyubobobo 回复 提问者 慕桂英雄 #3
    我在原答案上添加了一个反例。
    回复 有任何疑惑可以回复我~ 2019-09-18 03:22:11
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信