1. Главная
  2. Библиотека
  3. Другое
  4. Вам дана строка s из n букв a, b и c. Назовем подпослед...
Разбор задачи

Вам дана строка s из n букв a, b и c. Назовем подпоследовательность этой строки красивой, если она имеет вид a...a b c...c, причем количество букв a и c должно быть одинаковым (возможно, нулевым). Например, строки «abc», «aaabccc» и «b» являются хорошими,

  • Предмет: Другое
  • Автор: Кэмп
Вам дана строка s из n букв a, b и c. Назовем подпоследовательность этой строки красивой, если она имеет вид a...a b c...c, причем количество букв a и c должно быть одинаковым (возможно, нулевым). Например, строки «abc», «aaabccc» и «b» являются хорошими,

Условие:

Вам дана строка s из n букв a, b и c.
Назовем подпоследовательность этой строки красивой, если она имеет вид a...a b c...c, причем количество букв a и c должно быть одинаковым (возможно, нулевым). Например, строки «abc»,
«aaabccc» и «b» являются хорошими, а строки «aabc», «cba», «ac» и «abca» хорошими не являются.
Требуется ответить на q запросов. В запросе даются два целых числа l и r. Требуется найти
размер максимальной подпоследовательности подстроки s от l до r включительно, являющейся
красивой.
Формат входных данных
Первая строка содержит два целых числа n и q (1 ≤ n, q ≤ 200 000) — длина строки и количество
запросов соответственно.
Вторая строка содержит строку s длины n, состоящую из букв a, b и c.
Следующие q строк содержат два целых числа l и r (1 ≤ l ≤ r ≤ n), задающих запрос на
подстроке s от l до r включительно.
Формат выходных данных
Для каждого запроса выведите одно целое число — максимальный размер красивой подпоследовательности заданной подстроки. Если красивых подпоследовательностей у данной подстроки нет,
выведите 0.
Пример
7 4\nacbabcc
1 7
1 2
1 3
2 6
5
0
1
3

Решение:

Наша задача – найти в заданной подстроке s[l…r] максимальную по длине подпоследовательность, которая имеет вид: сначала некоторое число букв «a» (возможно, 0), затем ровно одна буква «b», затем такое же число букв «c» (возможно, 0). Другими словами, если в подпоследовательности выбрана буква b, то до неё должны идти X букв a, а после неё – X букв c, где X может быть 0. Например, подпоследовательность «b» (при X = 0) подходит, а для X = 1 мы получим «abc», для X = 2 – «aabcc» и т.д.

Шаг 1. Анализ задачи

Когда мы выбираем подпоследовательность, условие паттерна строг...

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

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

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

Какое ключевое свойство отличает «красивую» подпоследовательность от других в данной задаче?

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

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

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

Топ 3 ошибок

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

Не нашел нужную задачу?

Воспользуйся поиском

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