Processing math: 0%
ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Задача 67299
Темы:    [ Теория алгоритмов (прочее) ]
[ Индукция (прочее) ]
Сложность: 5
Классы: 8,9,10,11
В корзину
Прислать комментарий

Условие

В ряд слева направо стоят N коробок, занумерованных подряд числами 1, 2, \ldots, N. В некоторые коробки, стоящие подряд, положат по шарику, оставив остальные пустыми. Инструкция состоит из последовательно выполняемых команд вида «поменять местами содержимое коробок № i и № j», где i и j – числа. Для каждого ли N существует инструкция, в которой не больше 100N команд, со свойством: для любой начальной раскладки указанного вида можно будет, вычеркнув из инструкции некоторые команды, получить инструкцию, после выполнения которой все коробки с шариками будут левее коробок без шариков?

Решение

Давайте считать, что все шарики синие. В пустые коробки положим по красному шарику. Теперь пустых коробок нет. Покажем даже более сильное утверждение: что для любого N есть инструкция не длиннее чем 3N с данным свойством.

Пусть в N коробочках, стоящих в ряд, лежат красные и синие шарики, причём для хотя бы одного из цветов шарики этого цвета лежат подряд (такие конфигурации назовём непрерывными). Тогда можно вычеркнуть часть строк и получить инструкцию, после выполнения которой все синие шарики будут левее всех красных шариков, а также можно получить инструкцию, после которой все красные шарики левее всех синих (нумерация коробок слева направо).

Понятно, что для N=1 такая инструкция есть. Покажем, как из инструкции для k\geqslant 1 сделать инструкцию для 2k и для 2k-1, этого будет достаточно. Обозначим N = 2k или 2k-1.

Инструкция для N будет выглядеть так:

I группа: сначала все пары вида (i, k+i) в любом порядке

Если N нечетно, сюда приходится добавить все пары вида (i+1,i+k) при i\geqslant 1 (назовём эти команды дополнительными).

II группа: инструкция для k первых коробочек из индукционного предположения

III группа: все пары различных чисел вида (i, N+1-i) в любом порядке

При N=2k длина этой инструкции не превышает k + 3k + k = 5k \leqslant 3N. При N=2k-1 длина этой инструкции не превышает 2(k-1) + 3k + (k-1) = 6k-3= 3N.

Теперь покажем, почему она работает. Есть тот цвет, которого не больше k, назовём его основным. Покажем, что можно выполнить часть инструкций I группы так, чтобы все камни основного цвета лежали среди первых k коробочек, и при этом конфигурация среди первых k коробочек будет тоже непрерывной.

Есть четыре варианта того, как могут располагаться камни основного цвета.

  1. они идут подряд, и все они среди левых k коробок – ничего делать не надо;
  2. они идут подряд, и все они среди правых коробок – используем все пары вида (i, k+i);
  3. они есть и среди левых k коробок, и среди остальных правых, при этом они идут подряд. Заметим, что ни в какой паре вида (i, i+k) нет двух камней основного цвета. Все основные камни тогда перенесем справа налево (тогда камни не основного цвета будут среди первых k камней лежать подряд.
  4. Камни основного цвета – самые первые и самые последние. Перенеся последние влево (при нечётном N используя дополнительные операции), получаем требуемое.

(Чтобы понять алгоритм, можно представить расположение коробочек не в ряд, а по окружности.)

После этого применим часть инструкций II группы, чтобы среди первых k коробочек слева оказались все камни основного цвета.

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

Источники и прецеденты использования

олимпиада
Название Турнир городов
год/номер
Номер 44
Дата 2022/23
вариант
Вариант устный тур
задача
Номер 6

© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .