Тема . Текстовые задачи на конструктивы в комбе

Процессы и алгоритмы

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела текстовые задачи на конструктивы в комбе
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#90451

Назовём словом любую последовательность букв. Со словами разрешается проделывать следующие операции: 1) удалить первую букву слова; 2) удалить последнюю букву слова; 3) добавить копию слова после него. Например, если исходное слово ABC  , применение операций даст BC,AB  и ABCABC  соответственно. Верно ли, что с помощью таких операций можно в любом слове переставить буквы в любом порядке?

Источники: Турнир Ломоносова - 2024, 11.4 (см. turlom.olimpiada.ru)

Подсказки к задаче

Подсказка 1

В этой задаче нужно придумать алгоритм перестановки букв с помощью данных операций для любого слова и любой перестановки. Но сразу догадаться до этого сложно, поэтому попробуйте рассмотреть какой-нибудь простой частный случай.

Подсказка 2

Как получить циклический сдвиг?

Подсказка 3

Достаточно просто удвоить слово и удалить всё лишнее! Теперь попробуйте перейти от этого к произвольной перестановке.

Показать ответ и решение

Сначала заметим, что мы можем сделать циклический сдвиг букв в слове. Действительно, пусть у нас есть слово A A  ...A
  1 2   n  . Удвоим его и удалим буквы A1A2 ...An−1  слева. Получили слово AnA1A2...An −1  .

Теперь приведём алгоритм. Пусть у нас имеется слово X  , имеющее вид A1A2...An  . Сделаем копию n  раз, получим слово Y  , состоящее из  n
2  копий X  , идущих подряд. Рассмотрим самое крайнее слово X  справа, из него будем делать нужную перестановку. Пусть мы хотим получить некоторую перестановку B1B2...Bn  . Пусть i  — минимальный индекс такой, что Ai ⁄=Bi  . Уберём в самом правом слове X  все буквы от Ai  до An  . Теперь сделаем циклический сдвиг, переместим Bi  в конец слова Y  . Далее будем следовать аналогичному алгоритму, найдём в слове Y  букву Bi+1  (она будет среди n  первых слева букв), удалим все буквы перед ней и сдвинем её в конец слова Y  и так дальше.

Спустя не более n  циклических сдвигов n  последних букв слова Y  будут нужной перестановкой, останется только удалить лишние буквы слева и мы получим требуемое.

Осталось объяснить, почему длины слова Y  хватит. На первом шаге мы удаляем не более n  букв справа и менее n  букв слева, а на остальных шагах — менее n  букв слева. Таким образом, всего будет удалено не более 2n +n(n− 1)=n2 +n  букв. Длина слова Y  равна n ⋅2n  . Неравенство n⋅2n ≥ n2+ n  вытекает из неравенства 2n >n +1  , которое можно доказать индукцией по n  . Таким образом, мы сможем выполнить n  циклических сдвигов и при этом точно останутся n  букв, составляющих нужную перестановку.

Ответ: да

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!