Библиотека задач / Оптимизация

Подростки и взрослые

В каком порядке объединять файлы?

Условие

Есть четыре файла размером 22, 33, 44 и 88 условных единиц. Одна операция объединяет любые два файла в новый файл, размер которого равен сумме их размеров. Стоимость операции равна этому же размеру; старые два файла исчезают. Нужно получить один общий файл за три операции. Найдите наименьшую суммарную стоимость и докажите, что меньше нельзя.

О задаче · Подростки и взрослые
Тема
Оптимизация
Для кого
Подростки и взрослые
Уровень библиотеки
Следующий шаг · ориентир
Записать идею

Личный черновик для заметок и расчётов. Он никуда не отправляется и не проверяется.

Подсказка 1

Последнее объединение всегда стоит 1717, но два предыдущих могут иметь разную стоимость.

Подсказка 2

После выбора первой пары останутся три файла. Какую пару среди них выгоднее объединить?

Разобрать решение по шагам
01

Отделите неизбежную плату

Общий размер никогда не меняется и равен 1717. Поэтому последняя операция при любом плане стоит 1717. Порядок влияет лишь на стоимость первых двух объединений: файл, возникший рано, может оплачивать копирование повторно.

02

Постройте план стоимостью 3131

Сначала объединяем 22 и 33, платим 55. Теперь размеры 44, 55, 88. Объединяем 44 и 55, платим 99. Наконец объединяем 88 и 99, платим 1717. Всего 5+9+17=315+9+17=31.

03

Исключите более дешёвый план

Первой можно выбрать одну из шести пар. После этого остаются три файла; так как последняя плата фиксирована, выгоднее объединить два наименьших из них. Все варианты первых действий:

Первая параЛучшая полная стоимость
22 и 333131
22 и 443232
22 и 883434
33 и 443333
33 и 883434
44 и 883434

Это исчерпывает все первые действия и лучшие продолжения после них. Минимум действительно 3131.

Маленькие файлы объединяются раньше
012 + 3 = 5первая стоимость — 5
024 + 5 = 9вторая стоимость — 9
038 + 9 = 17суммарно 5+9+17
Ответ

Минимальная суммарная стоимость — 3131: объединить 22 и 33, затем 55 и 44, затем 99 и 88.

Главная идея

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

Как заметить эту идею в другой задаче

Стоимость объединения равна сумме размеров, а промежуточные суммы используются снова. Маленькие элементы выгодно объединять раньше, чтобы они участвовали в повторных оплатах.

Возможная ошибка

Объединить всё «сразу» и назвать стоимость 1717. По условию операция принимает только два файла, поэтому промежуточные копирования тоже оплачиваются.

Источник и примечания

Источник и редакция

Авторская учебная задача на классическую идею. Формулировка и разбор — Popov Academy.

Проверь себя

Размер каждого исходного файла увеличили ровно вдвое. Во сколько раз изменится минимальная общая стоимость?

Ответ к дополнительной задаче

Тоже вдвое: она станет 6262. Для любого порядка все промежуточные размеры и стоимости удваиваются. Соответствие между планами сохраняется, поэтому удваивается и минимум.

Продолжить тему: Поиск и алгоритмы →
Учебная схема

Popov Academy · Библиотека задач

В каком порядке объединять файлы?

https://popov.academy/library/adult-file-merging/

Условие

Есть четыре файла размером 22, 33, 44 и 88 условных единиц. Одна операция объединяет любые два файла в новый файл, размер которого равен сумме их размеров. Стоимость операции равна этому же размеру; старые два файла исчезают. Нужно получить один общий файл за три операции. Найдите наименьшую суммарную стоимость и докажите, что меньше нельзя.

Дополнительная задача

Размер каждого исходного файла увеличили ровно вдвое. Во сколько раз изменится минимальная общая стоимость?