Ktoś może zaproponować mi liniowy algorytmu czasu, który wprowadzany jest skierowany acykliczny wykres a dwa wierzchołki i i powraca liczbę prostych odcinków z na w .
Mam algorytm, w którym uruchomię DFS (Głębokie pierwsze wyszukiwanie), ale jeśli DFS znajdzie to nie zmieni koloru (z białego na szary) żadnego z węzłów, które znajdują się na ścieżce tak że jeśli jest to podścieżka jakiejkolwiek innej ścieżki, to również DFS ponownie przechodzi przez tę podścieżkę. Na przykład rozważ listę przyległości, w której musimy znaleźć liczbę ścieżek od do vs t s t G t s ⇝ t p v
.
Czy mój algorytm jest poprawny? jeśli nie, jakie modyfikacje są potrzebne, aby było poprawne, lub wszelkie inne podejścia będą bardzo mile widziane.
Uwaga : Rozważyłem tutaj algorytm DFS podany w książce „Wprowadzenie do algorytmów przez Cormena”, w którym koloruje on węzły zgodnie z jego statusem, więc jeśli węzeł nie jest odwiedzany, niezbadany i badany, wówczas kolor będzie biały, odpowiednio szary i czarny. Wszystkie pozostałe elementy są standardowe.