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
?