Бинарным поиском перебираем значение элемента. Для него будем узнавать количество элементов < x. Пусть get(root, u) - количество таких элементов от корня до вершины u. Тогда мы можем найти количество на пути и понять k-ая порядковая ли эта статистика по формуле get(root,u) + get(root,v) - 2 * get(root, lca)
Чтобы находить количество таких за log , надо построить перс ДО от корня. Типо строим ДО для корня, потом новую версию для его сыновей, в которой log n вершин изменяются, остальные ведут на корня. Ну думаю ты знаешь что такое перс ДО.