Суф.массив

  1. Построение за O(N2logN) = тупо sort
  2. Сравнение строчек hash-ами на больше меньше за O(logN) бинпоиском
  3. Построение за O(Nlog2N) = тупо sort с тупо hash-ами
  4. LCP за O(NlogN) хэшами
  5. Оптимизация
    1. MergeSort
    2. Сравнение хэшами на равенство с малым числом умножений
    3. Хэш = int

Суф. дерево

  1. Сжатый бор.

Практика

  1. timus : 1590 (Число различных подстрок, N=5000, напишите сжатым бором) (код от Burunduk1)
  2. timus : 1393 (Напишите суф. массив)