Алгоритм Тарьяна позволяет находить наименьшего общего предка двух Дано дерево и набор запросов: пары вершин в дереве, если все запросы известны заранее (offline).Каждый запрос к дереву {{---}} это <tex>2</tex> вершины <tex>v</tex>,<tex>u</tex> ), и для которых каждой пары нужно найти такую вершину <tex>k</tex>наименьшего общего предка. Запросы нам известны заранее, что <tex>k</tex> {{---}} предок вершин <tex>v</tex> и <tex>u</tex>, и <tex>k</tex> имеет максимальную глубину из всех таких вершинт.е задача сформулирована в режиме оффлайн.
Алгоритм позволяет найти ответы для дерева из <tex>n</tex> вершин и <tex>m</tex> запросов за время <tex>O (n + m)</tex>, т.е при достаточно большом <tex>m</tex>, за <tex>O (1)</tex> на запрос.
== Алгоритм ==