1. Главная
  2. Библиотека
  3. Теория управления
  4. Петя, которому три года, очень любит играть с машинками...
Разбор задачи

Петя, которому три года, очень любит играть с машинками. Всего у Пети N различных машинок, которые хранятся на полке шкафа так высоко, что он сам не может до них дотянуться. Одновременно на полу комнаты может находиться не более K машинок. Петя играет с

  • Предмет: Теория управления
  • Автор: Кэмп
  • #Методы оптимизации и принятия решений
  • #Теория и методы принятия управленческих решений
Петя, которому три года, очень любит играть с машинками. Всего у Пети N различных машинок, которые хранятся на полке шкафа так высоко, что он сам не может до них дотянуться. Одновременно на полу комнаты может находиться не более K машинок. Петя играет с

Условие:

Петя, которому три года, очень любит играть с машинками. Всего у Пети N различных машинок, которые хранятся на полке шкафа так высоко, что он сам не может до них дотянуться. Одновременно на полу комнаты может находиться не более K машинок. Петя играет с одной из машинок на полу и если он хочет поиграть с другой машинкой, которая также находится на полу, то дотягивается до нее сам. Если же машинка находится на полке, то он обращается за помощью к маме. Мама может достать для Пети машинку с полки и одновременно с этим поставить на полку любую машинку с пола. Мама очень хорошо знает своего ребенка и может предугадать последовательность, в которой Петя захочет играть с машинками. При этом, чтобы не мешать Петиной игре, она хочет совершить как можно меньше операций по подъему машинки с пола, каждый раз правильно выбирая машинку, которую следует убрать на полку. Ваша задача состоит в том, чтобы определить минимальное количество операций. Перед тем, как Петя начал играть, все машинки стоят на полке.
Формат входных данных
В первой строке содержаться три числа N , K и P (1≤K,N≤100000, 1≤P≤500000). В следующих P строках записаны номера машинок в том порядке, в котором Петя захочет играть с ними.
Формат выходных данных
Выведите единственное число: минимальное количество операций, которое надо совершить Петиной маме.

Решение:

Для решения этой задачи необходимо использовать жадный алгоритм. Суть стратегии заключается в следующем: когда нам нужно освободить место на полу (количество машинок достигло KK, а нужная машинка ещё не на полу), мы должны убрать ту машинку, которая потребуется нам позже всех в будущем.

Алгоритм решения:

  1. Предварительная обработка: Для каждой машинки составим список моментов времени (позиций в последовательности PP), когда Петя захочет с ней поиграть. Это позволит нам быстро определять, когда машинка понадобится в следующий раз.
  2. Использование очереди с приоритетом: Буд...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой принцип лежит в основе жадного алгоритма для минимизации операций мамы при игре Пети с машинками?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет