给定具有顶点和边| V |的图G时和| E |分别用顶点u和t编写O(| E | + | V |)算法以计算从u到t的最短路径数,即,如果有5个长度为4的路径,而长度4是从u到最短路径的路径到t时,算法将输出5。
我知道该算法由于其运行时而必须以某种方式合并DFS或BFS,因为它们各自具有O(| E | + | V |)运行时,但是我有点受阻。我尝试实现某种方法,使其可以重复执行DFS,算法以t终止,但这对于确定将哪些节点设置为已访问节点以及在每次迭代后重置哪个节点变得很困难。
谢谢!
答案 0 :(得分:1)
您可以使用广度优先搜索。对于每个顶点,请跟踪: