Блог пользователя zamazan4ik

Автор zamazan4ik, 9 лет назад, По-русски

Вот тут на контесте попалась такая вот ДП. Не могу понять, как решить. Вот условие :

Рассмотрим двухбуквенные последовательности, которые могут состоять только из букв a, b и при этом: 1.никогда не содержат двух букв b подряд, 2.ни в одном последовательности никогда не встречается три одинаковых подпоследовательности подряд. Например, этому правилу не удовлетворяют следующие последовательности: aaa (так как три раза подряд содержит a), ababab (так как три раза подряд содержит ab), aabababa (также три раза подряд содержит ab).

Напишите программу, которая подсчитает количество всех двухбуквенных последовательностей длинной ровно K символов, удовлетворяющих сформулированным выше правилам.

Формат входных данных

Вводится одно число K (1 ≤ K ≤ 100 000).

Формат выходных данных

Выведите одно число — количество различных двухбуквенных последовательностей длины K.

У меня получилась формула a[i] = a[i-1]+a[i-2]-x; Но вот что отнимать надо тут(этот пресловутый x), я не знаю.

Может кто-то поможет.

Большое спасибо!

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А что за контест, если не секрет?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Да там одного университета в Беларуси. И такая там задача была

    • »
      »
      »
      9 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

      Вот набросок решения: любую подходящую последовательность можно разбить на токены вида "aa..aab" (первый токен может быть без букв "a"), иначе не соблюдается первое свойство. В каждом таком токене не более двух букв "a", иначе не соблюдается второе свойство. Таким образом, мы выписываем подряд несколько токенов вида "ab" и "aab", и можем дописать в начало букву "b" и дописать в конец одну или две буквы "a".

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

может быть Формула включение и исключение есть ли там модуль, ответ может быть большим?

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Для маленьких К перебор, а для остальных ответ 0: https://olympiads.ru/moscow/2009/team/archive/f_mumba.pdf