immagino tu stia studiando informatica, solo li si fanno sti esercizi sbattimento

questa se non erro si risolve con la programmazione dinamica:
devi trovare il percorso ottimo?
il grafo è aciclico?
puoi passare da nodi gia visitati?