Чи можна запропонувати мені алгоритм лінійного часу , який приймає в якості вхідних даних орієнтованого ациклического граф , і дві вершини і і повертає число простих шляхів від до в .
У мене є алгоритм, в якому я буду запускати DFS (глибокий перший пошук), але якщо DFS знайде він не змінить колір (від білого до сірого) будь-якого з вузлів, що потрапляє в шлях так що якщо це підпуть будь-який інший шлях, то також DFS знову проходить цей підпуть. Для прикладу розглянемо список суміжності, де нам потрібно знайти кількість шляхів від p до v .
Чи правильний мій алгоритм? якщо ні, то які модифікації потрібні для виправлення чи будь-які інші підходи, будуть дуже вдячні.
Примітка . Тут я розглянув алгоритм DFS, який наведений у книзі "Введення в алгоритми Кормен", в якій він забарвлює вузли відповідно до їх стану. Отже, якщо вузол невідомий, не досліджений і досліджений, то колір буде білим, сірий і чорний відповідно. Всі інші речі є стандартними.