Обмен технологиями

14-е провинциальное соревнование на Кубок Ланьцяо. CB, группа G. Вопрос [аббревиатура подстроки] Решение (AC)

2024-07-06

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Общая идея темы

данная строка SSс,характер а, ба, ба,б, спросить строку SSс Сколько их в ааа начало ббб Конечная подстрока.

Идеи решения проблем

20 очков

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

100 очков

Диапазон данных велик, и нам необходимо контролировать временную сложность внутри O ( n log ⁡ n ) O(nlog n)О(нвотгн) В пределах.

Файи

нам нужно найти все ааа начало ббб конец строки, то мы можем для каждого символа ббб, иди и смотри ббб Сколько их на левой стороне ааа, то эти а … б точки баб Это юридическая строка.Подсчитайте, сколько символов находится слева от определенной позиции. ааа, мы можем использоватьпрефиксная суммаАлгоритм сохраняется.

Способ 2

Мы можем перебирать всю строку для каждого ааа Сколько символов находится справа от персонажа? ббб, то эти а… ба точки баб Все это юридические строки.Подсчет символов после определенной позиции ббб Номер можно использоватьсуффиксная суммаАлгоритм сохраняется.

#include