Условие
Есть четыре файла размером , , и условных единиц. Одна операция объединяет любые два файла в новый файл, размер которого равен сумме их размеров. Стоимость операции равна этому же размеру; старые два файла исчезают. Нужно получить один общий файл за три операции. Найдите наименьшую суммарную стоимость и докажите, что меньше нельзя.
О задаче · Подростки и взрослые
Записать идеюЕсть запись
Личный черновик для заметок и расчётов. Он никуда не отправляется и не проверяется.
Черновик не сохраняется: текст только в этой вкладке.
Черновик изменён в другой вкладке. Твой текущий текст пока сохранён здесь, автоматическая запись остановлена.
Подсказка 1
Последнее объединение всегда стоит , но два предыдущих могут иметь разную стоимость.
Подсказка 2
После выбора первой пары останутся три файла. Какую пару среди них выгоднее объединить?
Разобрать решение по шагам
Отделите неизбежную плату
Общий размер никогда не меняется и равен . Поэтому последняя операция при любом плане стоит . Порядок влияет лишь на стоимость первых двух объединений: файл, возникший рано, может оплачивать копирование повторно.
Постройте план стоимостью
Сначала объединяем и , платим . Теперь размеры , , . Объединяем и , платим . Наконец объединяем и , платим . Всего .
Исключите более дешёвый план
Первой можно выбрать одну из шести пар. После этого остаются три файла; так как последняя плата фиксирована, выгоднее объединить два наименьших из них. Все варианты первых действий:
| Первая пара | Лучшая полная стоимость |
|---|---|
| и | |
| и | |
| и | |
| и | |
| и | |
| и |
Это исчерпывает все первые действия и лучшие продолжения после них. Минимум действительно .
Ответ
Минимальная суммарная стоимость — : объединить и , затем и , затем и .
Главная идея
При поиске оптимума отделяйте неизбежную часть стоимости и сравнивайте только то, на что влияет ваш выбор.
Как заметить эту идею в другой задаче
Стоимость объединения равна сумме размеров, а промежуточные суммы используются снова. Маленькие элементы выгодно объединять раньше, чтобы они участвовали в повторных оплатах.
Возможная ошибка
Объединить всё «сразу» и назвать стоимость . По условию операция принимает только два файла, поэтому промежуточные копирования тоже оплачиваются.
Источник и примечания
Источник и редакция
Авторская учебная задача на классическую идею. Формулировка и разбор — Popov Academy.
Проверь себя
Размер каждого исходного файла увеличили ровно вдвое. Во сколько раз изменится минимальная общая стоимость?
Ответ к дополнительной задаче
Тоже вдвое: она станет . Для любого порядка все промежуточные размеры и стоимости удваиваются. Соответствие между планами сохраняется, поэтому удваивается и минимум.
Тема, знания и приёмы
Поиск и алгоритмы · Нужна школьная база
- Код писать не нужно. Понадобятся точный план и проверка всех возможных случаев.
Приёмы решения: Оценка и достижимость · Ограниченный перебор