Для определения, является ли вершина достижимой из другой вершины в направленном графе, можно использовать алгоритм обхода в глубину (DFS) или алгоритм обхода в ширину (BFS). Если после обхода из одной вершины есть путь к другой вершине, то они достижимы друг из друга.
Почему невозможно реализовать алгоритмы достижимости в направленных графах с такой сложностью? Это связано с тем, что построение конденсации графа и структуры для нахождения наименьшего общего предка (LCA) требуют определенного времени на препроцессинг, и при большом количестве вершин (n) это время может стать слишком большим. Невозможно достичь времени выполнения запросов за O(1) (или O(logn) для LCA) без соответствующего времени препроцессинга, поэтому данная цель может быть недостижима из-за ограничений вычислительных ресурсов.