在我开始之前,是的,这是一个家庭作业。如果我在过去 14 小时内没有尽我所能解决这个问题并且一无所获,我就不会在这里发帖。
问题如下:我想检查是否可以在 O(V) 时间内从连接的无向图中删除一条边而不断开它,而不仅仅是线性的。
到目前为止我所达到的:
可以在不断开图形的情况下删除循环边缘,因此我只需检查图形是否有循环。我有两种方法可以使用,一种是 DFS,然后检查我是否有后边缘;另一种是通过计算 Vs 和 Es 并检查是否 |E| = |V| - 1,如果这是真的,那么图是一棵树,没有节点我们可以在不断开连接的情况下删除它。
前面的两种方法都解决了这个问题,但都需要 O(|E|+|V|),而且书上说有一种更快的方法(这可能是一种贪婪的方法)。
请问我可以得到任何提示吗?
编辑:更具体地说,这是我的问题;给定一个连通图 G=(V,E),我可以删除 E 中的一些边 e 并且结果图仍然是连通的吗?