Przejście wykresu n kroków

Biorąc pod uwagę prosty, nieukierunkowany wykres taki jak ten:

Począwszy od D, A, B lub C (V_start) - Muszę obliczyć, ile możliwych ścieżek istnieje od punktu początkowego (V_start) do punktu początkowego (V_start) zn kroki, w których każdą krawędź i wierzchołek można odwiedzać nieograniczoną ilość razy.

Myślałem o przeprowadzeniu pierwszego wyszukiwania na głębokości, zatrzymując się kiedysteps > n || (steps == n && vertex != V_start)jednak staje się to dość kosztowne, jeśli na przykładn = 1000000. Moja kolejna myśl doprowadziła mnie do połączenia DFS z programowaniem dynamicznym, ale tam utknąłem.

(To nie jest praca domowa, tylko utknąłem, bawiąc się wykresami i algorytmami dla dobra nauki.)

Jak mógłbym rozwiązać ten problem w rozsądnym czasie z dużymn?

questionAnswers(2)

yourAnswerToTheQuestion