Деление, рекуррентные соотношения (12 сентября 2017)
- Быстрое деление
- Обращение формального ряда за O(nlogn)
- Деление многочленов с остатком за O(nlogn)
- Деление длинных чисел за O(nlogn)
- Извлечение корня из длинного числа за O(nlogn)
- Линейные рекуррентные соотношения
- Вычисление чисел Фибоначчи за O(logn)
- Вычисление линейной k-рекурренты F(n) за O(kn) и O(k3logn)
- Вычисление линейной k-рекурренты F(n) за O(nlogn) и O(klogklogn) (xn/(1+S(x)))
− Перерыв −
- Автоматы (эквивалентность, минимизация, детерминизация)
- Детерминизация за O(answer)
- Определение автомата, изоморфизма. Нахождение изоморфизма автоматов. Определение суффиксного автомата.
- Минимальность и правые контексты состояний автомата.
- Дан автомат A и минимальный автомат M, проверить, эквивалентны ли A и M за O(n+m). Следствие: проверка, является ли автомат суффиксным за O(n+m).
- Эквивалентность. Задача: даны два автомата из n вершин, над алфавитом k, проверить на эквивалентность.
- bfs за O(n2k) времени и O(n2) памяти
- Через минимизацию одного из двух
- Минимизация автоматов
- Через детерминизацию (Алгоритм Бржозовского): Amin = d(r(d(r(A)))) = drdrA. Подходит для недетрминированных. [paper].
- Алгоритм Хопкрофта за O(knlogn) расщеплением классов. Быстр.