алгоритм с временной сложностью ниже O(N^2)
может существовать только, если каждое решение для дерева с N
узлами могут быть закодированы в менее чем O(N^2)
пространства.
Предположим, что полное двоичное дерево с n
листьями (N=n log n
). Решение проблемы будет содержать путь для каждого набора из 2 листов. Это означает, что в решении будет O(n^2)
элементов. Таким образом, для этого случая мы можем кодировать решение как 2-элементные множества листьев.
Теперь рассмотрим почти полное двоичное дерево с листьями m
, которое было создано только путем удаления произвольных листьев из полного двоичного дерева с листьями n
. Сравнивая решение этого дерева с решением полного бинарного дерева, оба будут совместно использовать пустые пулы. Фактически для каждого подмножества путей решения полного бинарного дерева будет существовать хотя бы одно двоичное дерево с остатками m
, как указано выше, в котором содержится каждое решение такого подмножества. (Мы намеренно игнорируем тот факт, что дерево с листьями m
может иметь еще несколько путей в решении, где по крайней мере некоторые из концов пути не являются листьями полного бинарного дерева.)
Только эта часть решения для бинарное дерево с m
листьями будет закодировано числом с (n^2)/2
бит. Индекс бит в этом числе представляет собой элемент в верхней правой половине матрицы с столбцами и строками n
.
Для n=4
это было бы:
x012
xx34
xxx5
Бит с индексом i
будет установлен, если неориентированный путь row(i),column(i)
содержится в растворе.
Как мы уже statet, что решение для дерева с m
листьев может содержать любое подмножество раствора до полного бинарного дерева с n>=m
листьями, каждый двоичное число с (n^2)/2
бит будет представлять собой решение для дерева с m
листьями ,
Теперь кодирование всех возможных номеров с помощью (n^2)/2
бит с числом менее (n^2)/2
невозможно. Таким образом, мы показали, что решения, по крайней мере, требуют наличия O(n^2)
места для представления. Используя N=n log n
сверху, мы получаем требование к пространству не менее O(N^2)
.
Поэтому doens't существует алгоритм со сложностью времени меньше, чем O(N^2)
Возможно, не хватает точки, но не все ли самые длинные пути будут в основном всеми путями от корня (предполагая, что ориентированные деревья, как показано на рисунке), всем листьям? Это можно сделать с помощью DFS с линейным временем. – amit
Фотография вводит в заблуждение. У нас есть неориентированные деревья. Я заменю картину. – Bhoot
как насчет bfs? Вершины последнего слоя без краев являются победителями – fl00r