Алгоритмы и структуры данных III. Базовый поток 2026

Материал из Public ATP Wiki
Версия от 11:35, 13 августа 2026; Spirina.es (обсуждение | вклад) (Новая страница: «==О курсе== '''Краткое описание курса:''' Курс посвящён алгоритмам и структурам данных для эффективной обработки последовательностей, множеств ключей и строк. Рассматриваются структуры для выполнения запросов на отрезках, деревья поиска, алгоритмы обра...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

О курсе

Краткое описание курса: Курс посвящён алгоритмам и структурам данных для эффективной обработки последовательностей, множеств ключей и строк. Рассматриваются структуры для выполнения запросов на отрезках, деревья поиска, алгоритмы обработки строк, суффиксные структуры и алгоритмы поиска подстрок.

Пререквизиты: Для освоения курса студент должен знать основы алгоритмов и структур данных, владеть основами программирования, понимать оценку сложности алгоритмов и уметь работать с массивами, деревьями и графами.

Команда курса

Руководитель курса: Ибрагимов Булат Ленарович Лектор курса:Бердашкевич Роман Евгеньевич Семинаристы:Вандакуров Артем Сергеевич

                 Погадаев Никита Максимович

Программа курса

Темы лекций и семинаров распределены на 15 учебных недель. Форма контроля: Дифференцированный зачет

| | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Sparse Table. Построение за O(nn), запрос за O(1). Обобщение на многомерный случай.
Дерево Фенвика. Обобщение на многомерный случай. |
| | | Дерево отрезков. Построение за O(n), реализация запросов “снизу вверх”. Обобщение на многомерный случай.
Дерево отрезков. Реализация запросов “сверху вниз”. Обновление на отрезке. Обобщение на многомерный случай. |
| | | Декартово дерево. Операции Merge и Split. Анализ времени работы. | | | | Задачи RMQ/RSQ для произвольного набора ключей. Решение с помощью бинарных деревьев поиска: запрос, обновление значений на подотрезке ключей, вставка, удаление. | | | | Порядковые статистики в бинарных деревьях поиска. Деревья поиска по неявному ключу. Решение RMQ/RSQ на массиве с помощью деревьев по неявному ключу. | | | | Задача LCA. Решение с помощью двоичных подъемов. | | | | Сведение задачи LCA к задаче RMQ и наоборот. Алгоритм Фарах-Колтон-Бендера. | | | | Поиск подстроки в строке. Префикс-функция. Z-функция. Алгоритм Кнута-Морриса-Пратта. | | | | z--s преобразования. | | | | Бор. Алгоритм Ахо-Корасик. | | | | Суффиксный автомат. Построение за O(n). Применения. | | | | Суффиксное дерево. Построение с помощью суффиксного автомата. Применения. | | | | Суффиксный массив. Алгоритм Кассаи. Применения.
LCP. Применения. |
| | | Эвристические алгоритмы поиска подстрок. Алгоритм Бойера-Мура. | | | | Полиномиальный хэш. Алгоритм Рабина-Карпа. | | |


Коммуникация

  • **Чат курса:** ссылка будет добавлена ближе к началу семестра.

Прогресс студентов

  • **Таблица с оценками:** ссылка будет добавлена ближе к началу семестра.

Критерии оценивания и формы контроля успеваемости

Оценка складывается:
70% Домашние задания
30% контрольные работы

За работу на семинарах можно получить дополнительный балл к оценке.

На курсе 2-3 домашних работы. В каждой домашней работе есть набор обязательных задач необходимых для получения минимальной положительной оценки за курс.

Задачи можно сдавать после дедлайна со штрафом 50%.

Списывание ограничивает оценку за задание - не более уд(4) вне зависимости от числа самостоятельно решенных задач.

Второй факт списывания - неуд за задание (пересдача курса).