Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Подразделы

Другие разделы

Дата и время

14/03/2025 17:26:07

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printРазбор задачи F. Квадродерево

Тема: динамическое программирование
Сложность: высокая

Постановка задачи
Дано квадродерево на таблице из 0 и 1
Найти минимальное число вершин, которое может остаться, при изменении не более, чем k ячеек

Решение
Посчитаем динамику на полном квадродереве, то есть в каждой вершине посчитаем – какое минимальное количество ячеек нужно изменить, чтобы в квадродереве с корнем в этой вершине было ровно m вершин

Обоснование
Если таблица имеет размер nn – то количество вершин в квадродереве O(n2)
Каждая такая вершина "пересчитывается" за O(n4)
T(n) 
Итого: O(n^4) – время работы программы

Автор разбора: Аксёнов Виталий, СПбГУ ИТМО
loading