ACM - Псков

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ACM - Псков » Алгоритмы » Количество различных подстрок в строке за N*N


Количество различных подстрок в строке за N*N

Сообщений 1 страница 2 из 2

1

В общих словах:

строчка длины N
Общее количество подстрок N*(N+1)/2;
1) считаем Z-функцию строки, ищем её максимальное значение
2) вычитаем из общего количества подстрок максимум Z-функции
3) отрезаем от строчки первый символ и зацикливаем на пункт 1 пока строчка не пуста

Z-функция
z[i] - длинна наибольшего суффикса, начинающегося с i-го элемента и равного префиксу строки.
считается за N. ( http://www.e-maxx.ru/algo/z_function )

2

Замена Z-функции на префикс-функцию на работе алгоритма не отразится.


Вы здесь » ACM - Псков » Алгоритмы » Количество различных подстрок в строке за N*N