Мне нужно найти самый длинный цикл в ориентированном графе, используя DFS.
Я когда-то видел эту статью в Википедии, описывающую способ сделать это, и я думаю, что она подошла к проблеме, похожей на маркировку node с одним из трех состояний: node еще не посетил, закончил поиск node, и node посетили, но еще не закончили посещение.
Я был бы признателен, если бы кто-нибудь мог поделиться ссылкой со мной. Кстати, это не алгоритм Тарьяна.
Проблема ниже - это то, что я пытаюсь решить, если вы хотите узнать.
Две цифры, указанные в первой строке, - это N и M, каждая из которых представляет количество узлов и количество направленных ребер.
Из второй строки заданы M наборов из двух цифр A и B, что означает, что node A и B связаны, но вы можете пересекать только node от A до B.
input.txt:
7 9
1 2
2 3
3 1
3 4
4 5
5 1
5 6
6 7
7 2
Ответ в этом случае равен 6, так как 2 > 3 > 4 > 5 > 6 > 7 > 2.