Witam, mam problem z zadaniem opartym na grafach. W skrócie chodzi o to, że muszę przedostać się z miasta pierwszego do miasta n-tego w jak najkrótszym czasie. Jednak istnieją pewne połączenia, które nic nie kosztują (czas dotarcie z miasta A do miasta B jest równy 0). Takich połączeń jest maksymalnie 50. Jest ograniczenie, że nie można skorzystać z takich połączeń więcej niż k razy.
Szukam sprytnego rozwiązania problemu, czegoś innego, niż sprawdzanie wszystkich możliwości, najpierw dla k=0,, potem k=1, 2, 3 (k <= 3), zwłaszcza, że mogą być takie dane, że się nie opłaca z nich korzystać. Wydaje mi się, że trzeba zmodyfikować algorytm Dijkstry, ale nie wiem jak zabrać się do tej modyfikacji. Jak uwzględnić w programie te ścieżki o wadze zerowej?