У меня проблемы с решением этой проблемы. Мне нужно найти все простых путей, начиная с исходной вершины s , содержащих простой цикл в ориентированном графе. т.е. повторы не разрешены, за исключением, конечно, единственной повторяющейся вершины, в которой цикл снова присоединяется к пути.
Я знаю, как использовать DFS-посещение, чтобы определить, есть ли у графа циклы, но я не могу найти способ использовать его для поиска всех таких путей, начиная с s .
Например, в этом графе
+->B-+
| v
s-->T-->A<---C
| ^
+->D-+
Начиная с s
, путь S-T-A-B-C-A будет найден правильно. Но путь S-T-A-D-C-A не будет найден, потому что вершина C помечена как посещенная DFS.
Может кто-нибудь подскажет, как решить эту проблему? Спасибо