×

Предупреждение

Не удалось удалить mail.css
Main menu

Дерево палиндромов (Eertree): Новое слово в алгоритмах на строках

Задачи поиска и анализа палиндромов (строк, читающихся одинаково в обоих направлениях) — классика спортивного программирования и биоинформатики. Алгоритм Манакера отлично находит самую длинную симметричную подстроку, но когда требуется найти все уникальные палиндромы, подсчитать их частоты или вычислить факторизацию строки на палиндромы, старые методы буксуют. Революция произошла в 2014 году, когда Михаил Рубинчик представил миру новую структуру данных — Дерево палиндромов (Eertree).

Подробнее

Теоремы Гёделя о неполноте: Границы математической логики

На рубеже XIX и XX веков математики под руководством Давида Гильберта лелеяли грандиозную мечту: создать абсолютно строгую, полную и непротиворечивую формальную систему, из аксиом которой алгоритмически выводилась бы любая математическая истина. Однако в 1931 году 25-летний Курт Гёдель опубликовал две теоремы о неполноте, которые навсегда разрушили эту мечту, доказав фундаментальные ограничения самой логики и дискретной математики.

Подробнее

Фибоначчиева куча: Секретное оружие алгоритма Дейкстры

Когда мы обсуждали алгоритм Дейкстры для поиска кратчайшего пути, мы упомянули, что он использует приоритетную очередь для извлечения вершины с минимальным расстоянием. Если использовать обычный массив, извлечение минимума займет время O(V). Если использовать классическую Бинарную кучу (Binary Heap), время извлечения и время обновления (уменьшения) ключа составят O(log V). Для разреженных графов это отлично. Но для очень плотных графов, где количество ребер огромно и операция "Уменьшить ключ" (Decrease-Key) вызывается миллионы раз, логарифм начинает тормозить систему. В 1984 году Майкл Фредман и Роберт Тарьян создали Фибоначчиеву кучу, чтобы преодолеть этот барьер.

Подробнее

Соц. сети