Size: a a a

2020 December 15

АР

А Р in pro.algorithms
Mikail Bagishov
О. Ну вот тут нужно именно на операцию смотреть. Например можно увидеть, что суммарно каждый выживший элемент вобрал в себя некоторый отрезок исходного массива.
действительно, важное замечание
источник

АР

А Р in pro.algorithms
чем стоит руководствоваться для нахождения всех элементов массива, которые надо сложить для того, чтобы все элементы массива были равными?
источник

АР

А Р in pro.algorithms
проще говоря, как найти подпоследовательности, суммы элементов, которых будут равны?
источник

М

Митрофан in pro.algorithms
Вечер добрый.
Какой пример применения алгоритма инверсии бинарных деревьев в практических задачах вы можете вспомнить?
источник

l

lrrr_lrrr in pro.algorithms
Митрофан
Вечер добрый.
Какой пример применения алгоритма инверсии бинарных деревьев в практических задачах вы можете вспомнить?
Хз. Из мин кучи сделать Макс кучу или наоборот, если я правильно понял вопрос 🤷‍♂️
источник

MB

Mikail Bagishov in pro.algorithms
Митрофан
Вечер добрый.
Какой пример применения алгоритма инверсии бинарных деревьев в практических задачах вы можете вспомнить?
Ну просто операция реверса подотрезка обычно сводится как раз к реверсу дерева
источник
2020 December 18

V

Vladimir in pro.algorithms
Всем привет. Подскажите можно ли найти пересечение массивов не сортируя их?
источник

IZ

Ilia Zviagin in pro.algorithms
Vladimir
Всем привет. Подскажите можно ли найти пересечение массивов не сортируя их?
Ну, просто тупо поиском, но за O(N^2)
источник

IZ

Ilia Zviagin in pro.algorithms
Vladimir
Всем привет. Подскажите можно ли найти пересечение массивов не сортируя их?
Можно через хэш-таблицу, формально — это БЕЗ СОРТИРОВКИ.
источник

V

Vladimir in pro.algorithms
Ilia Zviagin
Можно через хэш-таблицу, формально — это БЕЗ СОРТИРОВКИ.
Окей, спасибо
источник

A

Aragaer in pro.algorithms
если годятся вероятностные вещи, то можно фильтром блума
источник

ПК

Паша Калугин... in pro.algorithms
Как посчитать сумму длин всех путей дерева?
n до 10^5, нужно посчитать за секунду.
Наверное, это можно сделать динамикой, я взял dp[v] – сумма длин всех путей, полностью лежащих внутри поддерева v.
Проблема в обновлении.
Пусть мы находимся в вершине v.
Как посчитать сумму длин всех путей, которые полностью лежат в поддереве v и проходят через v?
У меня есть только одна идея: посчитать расстояние от каждой вершины до корня, потом втупую просуммировать по формуле
dist(u1, u2) = root_dist(u1) + root_dist(u2) - 2 * root_dist(lca(u1, u2))
Но это в лучшем случае O(n²), боюсь, что это не зайдёт.
источник

MB

Mikail Bagishov in pro.algorithms
Ну посчитай, на скольких путях лежит конкретное ребро
источник

MB

Mikail Bagishov in pro.algorithms
И просуммируй по ребрам
источник

ПК

Паша Калугин... in pro.algorithms
Mikail Bagishov
Ну посчитай, на скольких путях лежит конкретное ребро
А, это же просто произведение размера поддерева нижней вершины и количества оставшихся вершин...
источник

MB

Mikail Bagishov in pro.algorithms
Именно
источник

ПК

Паша Калугин... in pro.algorithms
Действительно, должно сработать, спасибо
источник

A

Aragaer in pro.algorithms
а может быть просто рекурсивно по поддеревьям считать "сумму длин путей в нем"+"количество путей в нем"?
источник

A

Aragaer in pro.algorithms
а, надо знать количество путей, которые заканчиваются в вершине поддерева
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Паша Калугин
Как посчитать сумму длин всех путей дерева?
n до 10^5, нужно посчитать за секунду.
Наверное, это можно сделать динамикой, я взял dp[v] – сумма длин всех путей, полностью лежащих внутри поддерева v.
Проблема в обновлении.
Пусть мы находимся в вершине v.
Как посчитать сумму длин всех путей, которые полностью лежат в поддереве v и проходят через v?
У меня есть только одна идея: посчитать расстояние от каждой вершины до корня, потом втупую просуммировать по формуле
dist(u1, u2) = root_dist(u1) + root_dist(u2) - 2 * root_dist(lca(u1, u2))
Но это в лучшем случае O(n²), боюсь, что это не зайдёт.
Центроидная?
источник