Когда дан граф G с вершинами и ребрами | V | и | E | и вершины u и t, напишите алгоритм O (| E | + | V |) для вычисления количества кратчайших путей от u до t, т. е. если есть 5 путей длины 4 с длиной 4, являющейся кратчайшим путем от u к т, тогда алгоритм выведет 5.
Я знаю, что алгоритм должен каким-то образом включать DFS или BFS из-за своего времени выполнения, поскольку у каждого есть время выполнения O (| E | + | V |), но я немного застрял. Я пытался реализовать что-то, где он неоднократно выполнял бы DFS с алгоритмом, оканчивающимся на t, но это стало проблематичным для решения, какие узлы устанавливать как посещенные, а какие сбрасывать после каждой итерации.
Заранее спасибо!