Das Problem, zu entscheiden, ob ein Graph einen Zyklus hat, der eine bestimmte Länge überschreitet ist
NP-Vollständig. Dein Problem, den längsten Zyklus zu finden, ist darauf zurückzuführen, so dass es wohl für dein Problem keine effiziente Lösung (also ein Algorithmus in P) geben wird, ein Brute Force Ansatz ausnahmsweise doch ganz gut.
Erwarte das Beste und bereite dich auf das Schlimmste vor.