Тема: Дерево 2
Как можно решить эту задачу http://acm.timus.ru/problem.aspx?space=1&num=1752???
Пытался решить бинпоиском + LCA но WA. Как можно ее по другому решить?
спасибо
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
MAXimal :: φορυμ » Problems » Дерево 2
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как можно решить эту задачу http://acm.timus.ru/problem.aspx?space=1&num=1752???
Пытался решить бинпоиском + LCA но WA. Как можно ее по другому решить?
спасибо
Может, просто найти диаметр дерева, и затем искать ответ в виде "дойти от v_i до диаметра, дальше идти вдоль него" ?
При этом сложность какой будет?
Там Q запросов, а каждый запрос за O(N). Значит в общей сложности O(QN) Q=5*10^4, N = 2*10^4 => 10^9 операций вроде выходит.
Да не, если идея правильная, то можно и за logN отвечать на запрос - двоичным подъёмом дойти до диаметра, а оказавшись в диаметре, уже просто взять k-ый элемент этого диаметра (диаметр сохранить заранее в отдельном списке).
Да там просто от каждой вершины надо самую дальнюю найти и запомнить, как мы туда шли: сразу вниз или вверх до куда-то, а потом вниз. Делается двумя дфсами.
Ну а после этого можно либо двоичным подъемом на все запросы в онлайне отвечать, либо еще одним дфсом в оффлайне за линию.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
MAXimal :: φορυμ » Problems » Дерево 2