<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.162.208.141&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.162.208.141&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/178.162.208.141"/>
		<updated>2026-06-11T06:29:48Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C-%D1%81%D0%B5%D0%BC2&amp;diff=45124</id>
		<title>Список заданий по ДМ-сем2</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%94%D0%9C-%D1%81%D0%B5%D0%BC2&amp;diff=45124"/>
				<updated>2015-03-22T14:08:01Z</updated>
		
		<summary type="html">&lt;p&gt;178.162.208.141: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;wikitex&amp;gt;&lt;br /&gt;
= Дискретная математика, алгоритмы и структуры данных, 2 семестр =&lt;br /&gt;
# Постройте массив, в котором сортировка выбором делает максимальное число обменов&lt;br /&gt;
# Предложите алгоритм, который вычисляет число обменов, которое делает сортировка выбором, за $O(n \log n)$.&lt;br /&gt;
# Найдите минимальное число сравнений для сортировки 4 элементов&lt;br /&gt;
# Найдите минимальное число сравнений для сортировки 5 элементов&lt;br /&gt;
# Постройте массив, в котором сортировка слиянием делает максимальное число сравнений элементов&lt;br /&gt;
# Укажите способ посчитать число массивов, в которых сортировка слиянием делает максимальное число сравнений элементов&lt;br /&gt;
# Предложите алгоритм слияния массива, состоящего из двух последовательно расположенных отсортированных фрагментов за $O(n)$ с использованием $O(\sqrt{n})$ дополнительной памяти&lt;br /&gt;
# Предложите алгоритм слияния массива, состоящего из двух последовательно расположенных отсортированных фрагментов за $O(n)$ с использованием $O(1)$ дополнительной памяти&lt;br /&gt;
# Укажите способ для алгоритма QSort с выбором среднего элемента в качестве элемента построить массив, на котором происходит максимальное число сравнений элементов&lt;br /&gt;
# Укажите способ для любого детерминированного алгоритма выбора разделяющего элемента построить массив, на котором алгоритм QSort работает за $\Omega(n^2)$&lt;br /&gt;
# Докажите, что с использованием только сравнений элементов нельзя выяснить, есть ли в массиве два одинаковых элемента быстрее, чем за $\Omega(n \log n)$&lt;br /&gt;
# Предложите алгоритм сортировки циклических сдвигов заданного массива с $n$ элементами, каждый из которых от 1 до $n$, за $O(n^2)$. Циклические сдвиги представлять единственным числом: номером первого элемента в исходном массиве.&lt;br /&gt;
# Предложите алгоритм сортировки циклических сдвигов заданного массива с $n$ элементами, каждый из которых от 1 до $n$, за $O(n \log n)$. Циклические сдвиги представлять единственным числом: номером первого элемента в исходном массиве. Указание: зная порядок на подстроках длины $L$ порядок на подстроках длины $2L$ можно восстановить за $O(n)$.&lt;br /&gt;
# Пусть известно, что массив длины $n$ из чисел от 1 до $n$ получен с помощью генератора случайных чисел, каждое число независимо получено с помощью равномерного распределения. Предложите модификацию алгоритма сортировки подсчетом, который сортирует данный массив за $O(n)$ используя лишь $O(\sqrt{n})$ дополнительной памяти (обе оценки должны выполняться в среднем).&lt;br /&gt;
# Задан массив, полученный циклическим сдвигом из отсортированного по возрастанию. Все элементы массива различны. Требуется за $O(\log n)$ найти в нем заданный элемент.&lt;br /&gt;
# Задан массив, полученный приписыванием одного отсортированного по возрастанию массива в конец другому отсортированному по возрастанию. Все элементы массива различны. Требуется за $O(\log n)$ найти в нем заданный элемент. &lt;br /&gt;
# Задан массив, полученный приписыванием отсортированного по убыванию массива в конец отсортированному по возрастанию. Все элементы массива различны. Требуется за $O(\log n)$ найти в нем заданный элемент. &lt;br /&gt;
# Задан массив, полученный приписыванием отсортированного по убыванию массива в конец отсортированному по возрастанию и затем циклическим сдвигом получившегося массива. Все элементы массива различны. Требуется за $O(\log n)$ найти в нем заданный элемент.&lt;br /&gt;
# Пусть выполняется целочисленный двоичный поиск с начальными значениями L = 0, R = $2^k$. Преложите алгоритм определения за $O(1)$ по заданным значениям L и R, могут ли они возникнуть в процессе двоичного поиска.&lt;br /&gt;
# Пусть выполняется целочисленный двоичный поиск с начальными значениями L = 0, R = $n$. Преложите алгоритм определения за $O(\log n)$ по заданным значениям L и R, могут ли они возникнуть в процессе двоичного поиска.&lt;br /&gt;
# Оцените число итераций, которые вещественный двоичный поиск с условием цикла &amp;quot;L != M and R != M&amp;quot; делает в худшем случае при начальной инициализации L = L0, R = R0, если числа L0 и R0 одного знака.&lt;br /&gt;
# Оцените число итераций, которые вещественный двоичный поиск с условием цикла &amp;quot;L != M and R != M&amp;quot; делает в худшем случае при начальной инициализации L = L0, R = R0, если числа L0 и R0 разных знаков, или одно из них равно 0.&lt;br /&gt;
# Предложите алгоритм определения глубины сортирующей сети за $O(k)$, где $k$ - число компараторов.&lt;br /&gt;
# Докажите или опровергните, что для любого заданного неотсортированного набора из 0 и 1 существует сеть компараторов, которая сортирует все наборы кроме заданного&lt;br /&gt;
# Докажите или опровергните, что для любой перестановки чисел от 1 до $n$ существует сеть компараторов, которая сортирует все перестановки, кроме заданной&lt;br /&gt;
# Постройте сортирующую сеть для 5 проводов с минимальным числом компараторов&lt;br /&gt;
# Предложите сортирующую сеть с $O(n \log^2 n)$ компараторов. &lt;br /&gt;
# Разберитесь в том, как устроена сортирующая сеть с $O(n \log n)$ компараторов и изложите это за 15 минут, чтобы общие идеи были ясны&lt;br /&gt;
# Докажите, что сортирующая сеть имеет глубину $\Omega(\log n)$&lt;br /&gt;
# Как найти $s$-й по величине элемент в куче при малых $s$?&lt;br /&gt;
# Предложите массив, который при превращении в кучу с помощью алгоритма за $O(n)$ требует выполнить максимальное число обменов.&lt;br /&gt;
# Предложите массив, из кучи в отсортированный массив требует выполнить максимальное число обменов.&lt;br /&gt;
# В массиве есть $k$ элементов, для которых нарушено условие кучи. Преваритите массив в кучу за $k \log n$ действий&lt;br /&gt;
# Докажите, что нельзя проверить, есть ли в куче два одинаковых элемента быстрее, чем за $\Omega(n \log n)$.&lt;br /&gt;
# Проанализировать саморасширяющийся массив, если расширение происходит в $A$ раз ($1 &amp;lt; A$)&lt;br /&gt;
# Проанализировать стек на саморасширяющемся массиве, если при полном заполнении происходит увеличение в 2 раза, а при заполнении менее чем на 1/4 - сужение в 2 раза с помощью метода потеницалов. Потенциал должен зависеть только от текущего состояния стека (размера выделенного массива и числа заполненных элементов) и не должен зависеть от истории операций.&lt;br /&gt;
# Проанализировать стек на саморасширяющемся массиве, если при полном заполнении происходит увеличение в A раз, а при заполнении менее чем на B - сужение в C раза&lt;br /&gt;
# Разработать вектор с добавлением/удалением с истинной стоимостью всех операций $O(\log n)$.&lt;br /&gt;
# Задан односвязный список, каждый элемент знает следующий после себя. При этом возможно, что на самом деле список зацикливается (один из элементов ссылается как на следующий на элемент, который уже встречался в списке перед ним). Требуется проверить, зацикливается ли заданный односвязный список за $O(n)$ с $O(1)$ дополнительной памяти&lt;br /&gt;
# В массиве есть элемент, который встречается хотя бы $n/2$ раз. Требуется найти его за $O(n)$ с $O(1)$ дополнительной памяти&lt;br /&gt;
# Использования памяти без инициализации. Задан массив $a[1..n]$. Требуется поддержать две операции: $set(i, x)$ и $get(i)$. Операция $set$ должна присваивать $i$-му элементу массива значение $x$. Операция $get$ должна возвращать последнее присвоенное $i$-му элементу значение, либо 0, если присвоения не было. При этом исходно массив заполнен произвольными данными. Разрешается завести $O(1)$ дополнительных массивов (также заполненных произвольным мусором) и реализовать все операции за истинное $O(1)$.&lt;br /&gt;
# Счетчик Кнута. Рассмотрим массив $a[0..n-1]$. Будем считать, что в каждом элементе может быть число 0, 1 или 2 и массив представляет собой число $a[0]+a[1]\cdot 2+a[2]\cdot 4 + \ldots + a[n-1]\cdot2^{n-1}$. Требуется реализовать операцию добавления $2^k$ к числу, представленному в массиве за истинное $O(1)$ и $O(n)$ дополнительной памяти.&lt;br /&gt;
# Реализуйте менеджер памяти, позволяющий выделять и возвращать блоки одинакого размера за $O(1)$ времени и $O(1)$ дополнительной памяти&lt;br /&gt;
# Предложите реализацию стека, которая дополнительно позволяет выполнить операцию &amp;quot;вернуть минимум значений в стеке&amp;quot;&lt;br /&gt;
# Стек с множественным извлечением. Добавим в стек операцию multipop(k), которая снимает вершины стека k элементов. Докажите, что амортизированная стоимость операции multipop равна $O(1)$. Сформулируйте окончательное доказательство с использованием метода потенциалов.&lt;br /&gt;
# Продемонстрируйте, как просимулировать очередь на двух стеках. Амортизированная стоимость операций push и pop должна быть $O(1)$.&lt;br /&gt;
# Предложите реализацию очереди, которая дополнительно позволяет выполнить операцию &amp;quot;вернуть минимум значений в очереди&amp;quot;. Амортизированная стоимость всех операций должна быть $O(1)$.&lt;br /&gt;
# Можно ли реализовать два стека на очереди (ограничений на время выполнения операций нет)?&lt;br /&gt;
# В $d$-куче выполняется $m$ операций decreaseKey и $n$ операций extractMin. Какое оптимальное асимптотически $d$ следует выбрать?&lt;br /&gt;
# В $d$-куче выполняется $m$ операций decreaseKey и $n$ операций extractMin. Время выполнения decreaseKey - $C_1 \log n$, а extractMin - $C_2 d \log n$. Какое $d$ следует выбрать?&lt;br /&gt;
# Пусть подряд выполняется $n$ операций insert в пустую биномиальную кучу. Какое среднее время операции?&lt;br /&gt;
# Как можно модифицировать биномиальную кучу, чтобы insert выполнялось за истиное $O(1)$, а амортизированная стоимость остальных операций не поменялась?&lt;br /&gt;
# Тонкие кучи. Будем называть дерево &amp;quot;тонким&amp;quot;, если оно может быть получено из биномиального удалением у некоторых вершин ребенка максимального ранга. Тонкой кучей называется коллекция тонких деревьев. Ограничений на число деревьев одного ранга нет. Разработайте операции merge и extractMin для тонких куч. Амортизированная стоимость операции extractMin должна быть $O(\log n)$. Амортизированная стоимость операции merge должна быть $O(1)$. &lt;br /&gt;
# Разработайте операцию decreaseKey для тонкой кучи. Докажите, что амортизированное время выполнения есть $O(1)$ (используйте потенциал $2M + T$, где $M$ - число вершин, у которых удалили ребенка)&lt;br /&gt;
# Докажите, что операция decreaseKey в тонкой куче из предыдущего задания выполняется за истиные $O(\log n)$&lt;br /&gt;
# Ускорение extractMin. Докажите, что в тонкой куче можно добиться истинного $O(\log n)$ на extractMin, если обрабатывать корневой список, сливая деревья разных рангов, как при extractMin каждый раз, когда в корневом списке становится хотя бы $2\log n$ элементов.&lt;br /&gt;
&amp;lt;/wikitex&amp;gt;&lt;/div&gt;</summary>
		<author><name>178.162.208.141</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%90%D0%A1%D0%94_%D1%81%D0%B5%D0%BC2&amp;diff=45123</id>
		<title>Список заданий по АСД сем2</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BF%D0%BE_%D0%90%D0%A1%D0%94_%D1%81%D0%B5%D0%BC2&amp;diff=45123"/>
				<updated>2015-03-22T13:23:27Z</updated>
		
		<summary type="html">&lt;p&gt;178.162.208.141: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;wikitex&amp;gt;&lt;br /&gt;
= Дискретная математика, алгоритмы и структуры данных, 4 семестр =&lt;br /&gt;
&lt;br /&gt;
# Бордером строки называется строка, которая является одновременно ее префиксом и суффиксом. Периодом строки $s$ называется число $p$, такое что для всех допустимых $i$ выполнено $s[i+p]=s[i]$. Докажите, что если у строки длины $n$ есть border длины $k$, то у нее есть период $n - k$.&lt;br /&gt;
# Докажите, что если у строки есть периоды $p$ и $q$, причем $p + q \le n$, то $gcd(p, q)$ также является периодом этой строки.&lt;br /&gt;
# Что будет, если в предыдущем задании убрать условие $p + q \le n$?&lt;br /&gt;
# Строки Фибоначчи. Определим $F_0 = \varepsilon$, $F_1 = b$, $F_2 = a$, $F_n = F_{n-1} F_{n-2}$. Докажите, что существует $k$ такое, что для $n \ge k$ выполнено $F_n^2$ - префикс $F_{n+2}$.&lt;br /&gt;
# Докажите, что существует $k$ такое, что если $n \ge k$, то строка $F_n[1...|F_n|-2]$ - палиндром.&lt;br /&gt;
# Определим строку Туе-Морса: $T_n = t_0t_1t_2...t_{2^n - 1}$, где $t_i = 0$, если двоичная запись числа $i$ содержит четное число единиц, и $t_i = 1$ в противном случае. Доказать, что не существует двух равных как строки подстрок строки $T_n$, имеющих пересекающиеся вхождения в $T_n$&lt;br /&gt;
# Докажите, что для любого $u \ne \varepsilon$ и любого $n$ строка $u^3$ - не подстрока $T_n$&lt;br /&gt;
# Разработать алгоритм восстановления строки по префикс-функции. ($O(n)$ или $O(n \log n)$, алфавит неограничен)&lt;br /&gt;
# Разработать алгоритм восстановления строки по z-функции. ($O(n)$ или $O(n \log n)$, алфавит неограничен)&lt;br /&gt;
# Разработать алгоритм восстановления строки по z-функции. ($O(n)$ или $O(n \log n)$, алфавит двоичный)&lt;br /&gt;
# Вычислить $z$-функцию по префикс функции. ($O(n)$ или $O(n \log n)$, алфавит неограничен, не прибегать к промежуточному представлению в виде строки)&lt;br /&gt;
# Вычислить префикс функцию по $z$-функции. ($O(n)$ или $O(n \log n)$, алфавит неограничен, не прибегать к промежуточному представлению в виде строки)&lt;br /&gt;
# Как найти строку длины $m$ в строке длины $n$ с использованием z-функции и O(m) дополнительной памяти?&lt;br /&gt;
# Задана строка. Пусть $p_1[i]$ - максимальная длина палиндрома нечетной длины с центром в позиции $i$. $p_0[i]$ - аналогично для четной длины. Модифицировать алгоритм поиска $z$-функции для построения $p_0$ и $p_1$.&lt;br /&gt;
# Дана строка $s$. Посчитать матрицу $A: ||a_{ij}|| = LCP(s[i .. n-1], s[j .. n-1])$; $i,j \ge 0$ за $O(|s|^2)$. (LCP - наибольший общий префикс двух строк)&lt;br /&gt;
# Докажите, что в конечном автомате для поиска подстроки в строке длины $n$ лишь $O(n)$ ребер ведут не в начальное состояние. Как это помогает сэкономить память?&lt;br /&gt;
# Алгоритм Саймона. Используя результат предыдущего задания, предложите алгоритм построения автомата за $O(n)$ (без множителя, зависящего от размера алфавита).&lt;br /&gt;
# Дана строка $s$. Посчитать число строк длины $L$, содержащих $s$ как подстроку. Время работы должно быть полиномом от длины $s$, и $L$.&lt;br /&gt;
# Дана строка $s$. Посчитать число строк длины $L$, содержащих $s$ как подстроку (по заданному модулю). Время работы должно быть полиномом от длины $s$, и $\log L$.&lt;br /&gt;
# Дана строка $s$. Посчитать число строк длины $l$, содержащих не менее $k$ вхождений $s$.&lt;br /&gt;
# Дана строка $s$. Посчитать число строк длины $l$, содержащих не менее $k$ непересекающихся вхождений $s$.&lt;br /&gt;
# Это и следующее задание доказывают линейность алгоритма Апостолико-Джанкарло. Будем обозначать закешированные значения наибольшего суффикса образца, который заканчивается в i-й позиции текста как suf[i]. Будем называть отрезок текста [i-suf[i]+1 - i] покрытым. Докажите, что любые два покрытых отрезка в процессе работы алгоритма либо вложены, либо не пересекаются.&lt;br /&gt;
# Используя результат предыдещего задания, докажите, что алгоритм Апостолико-Джанкарло работает линейное время.&lt;br /&gt;
# Докажите, что если строки s и t таковы, что st=ts, то найдется такая строка p, что $s=p^i$ и $t=p^j$ для некоторых i и j.&lt;br /&gt;
# Модифицировать алгоритм Ахо-Корасик так, чтобы не хранить все переходы, а только исходный бор и суффиксные ссылки, и время работы осталось прежним.&lt;br /&gt;
# Найти первые вхождения каждого из образцов в тексте за время O(длина текста + постр. автомата).&lt;br /&gt;
# Дано 2 бора A и B. Для всех вершин $u$ в $A$ найти самую глубокую вершину $v$ в $B$, соответствующую суффиксу $u$ (префикс-функция бора в боре). $O(|A| + |B|)$&lt;br /&gt;
# Дан набор образцов $\{p_i\}$. Определить, существует ли бесконечная вправо строка $t$, не содержащая $p_i$ как подстроки.&lt;br /&gt;
# Дан набор образцов $\{p_i\}$. Определить, существует ли бесконечная в две стороны строка $t$, не содержащая $p_i$ как подстроки.&lt;br /&gt;
# Дан набор образцов $\{p_i\}$. Посчитать число строк длины $l$, содержащих хотя бы одну из $p_i$ как подстроку. $O(\sum |p_i|\cdot l\cdot \sigma)$. ($\sigma$ - размер алфавита)&lt;br /&gt;
# Дано взвешенное дерево. Научиться отвечать на запросы &amp;quot;максимальное ребро на пути из $u$ в $v$&amp;quot; Для решения задачи модифицировать метод двоичного подъема ($O(n\log n)$ - предобработка, $O(\log n)$ - ответ на запрос). &lt;br /&gt;
# Дано взвешенное дерево. Научиться отвечать на запросы &amp;quot;вес пути из $u$ в $v$&amp;quot;. После предобработки за $O(n)$ ответ на запрос за $O(1)$.&lt;br /&gt;
# Дано взвешенное дерево. Разбить вершины его на множество путей (каждая вершина принадлежит ровно одному пути), чтобы путь от любой вершины до любой переходил с одного пути на другой не более $O(\log n)$ раз.&lt;br /&gt;
# Дано взвешенное дерево. Уметь отвечать на запросы &amp;quot;минимальное ребро на пути из $u$ в $v$&amp;quot; и &amp;quot;изменить весь ребра $uv$&amp;quot; за полином от логарифма.&lt;br /&gt;
# Дано взвешенное дерево. Уметь отвечать на запросы &amp;quot;сумма ребер на пути из $u$ в $v$&amp;quot; и &amp;quot;изменить весь ребра $uv$&amp;quot; за $O(\log n)$.&lt;br /&gt;
# Дан массив $a$. Посчитать массив $RMQ[i][j] = min(a[i] ... a[j])$ за $O(n^2)$.&lt;br /&gt;
# Модифицировать алгоритм Фараха-Колтона-Бендера, чтобы массив precalc занимал только $O(d)$ памяти для каждой маски.&lt;br /&gt;
# Свести задачу RMQ к задаче LCA линейного размера (указание: использовать декартово дерево)&lt;br /&gt;
# Можно ли свести задачу RMQ к задаче RMQ$\pm 1$ так, чтобы размер получившегося массива был равен $n+C$, где $n$ - длина исходного массива, а $C$ - константа?&lt;br /&gt;
# Докажите, что число различных как строки подстрок $s$ равно $n(n + 1) / 2$ - sum(lcp[i]).&lt;br /&gt;
# Найти самую длинную строку $p$, такую, что она входит в строку $t$ дважды и не пересекаясь. Решение должно работать за $SA + O(n)$, где $SA$ - время построения суффиксного массива.&lt;br /&gt;
# Использовать  суффиксный массив для нахождения такой строки $p$, что $|p| \times $(число вхождений $p$ в $t$) было максимальным за $SA + O(n)$&lt;br /&gt;
# Пусть в алфавите есть ровно два символа. Построить такую строку $s$, что её суффиксный массив совпадает с данным, за $O(n)$.&lt;br /&gt;
# Пусть $B(S)$ - множество бордеров $S$. Найти за $SA + O(n)$ сумму $\sum\limits_{i = 1}^{n} \sum\limits_{j = i}^{n} B(S[i..j])$.&lt;br /&gt;
# Найти строку над алфавитом $\{0, 1\}$, в которой $\Omega(n^2)$ различных как строки подстрок.&lt;br /&gt;
# Строка $s$ называется ветвящейся вправо в $t$, если существуют символы $c$ и $d$, такие что $c \ne d$ : $sc$ и $sd$ - подстроки $t$. Аналогично, ветвящаяся влево, если $cs$ и $ds$ - подстроки $t$. Найти самую длинную ветвящуюся влево и вправо подстроку $t$ за $SA + O(n)$.&lt;br /&gt;
# Найти количество ветвящихся влево и вправо строк для строки $t$. Считать только разные строки.&lt;br /&gt;
# Строка $s$ называется максимальным повтором в $t$, если 1) $s$ входит в $t$ не менее двух раз; 2) если $r$ входит в $t$ не менее двух раз, то $s$ - не является собственной подстрокой $r$. Доказать или опровергнуть, что все максимальные повторы равны по длине.&lt;br /&gt;
# Найти все максимальные повторы за $O(SA + n + ans)$.&lt;br /&gt;
# Петя забыл про спуск по счетчику в алгоритме Укконена. Привести пример строки, на которой полученный алгоритм будет работать дольше чем за $O(n)$.&lt;br /&gt;
# Привести пример, когда в алгоритме Укконена в одной итерации спуск происходит по $\Omega(n)$ реберам.&lt;br /&gt;
# Построить суффиксный массив по суффиксному дереву за $O(n)$.&lt;br /&gt;
# Построить суффиксное дерево по суффиксному массиву за $O(n)$.&lt;br /&gt;
# Определить число различных подстрок в строке с помощью суффиксного дерева за $ST + O(n)$. ($ST$ - время построения суффиксного дерева, суффиксный массив не использовать)&lt;br /&gt;
# Использовать  суффиксный массив для нахождения такой строки $p$, что $|p| \times $(число вхождений $p$ в $t$) было максимальным за $ST + O(n)$&lt;br /&gt;
# Найти максимальную подстроку в строке, имеющую два непересекающихся вхождения за $ST + O(n)$.&lt;br /&gt;
# Найти строку максимальной длины, ветвящаяся влево и вправо за $ST + O(n)$.&lt;br /&gt;
# Найти подпалиндром максимальной длины за ST + O(n).&lt;br /&gt;
# Алгоритм Хьюи. Дано дерево, вершины которого раскрашенны в цвета, то есть задано отображение $col: V \to \{1..k\}$. С помощью LCA найти $dc: V \to \{1..k\}$, где $dc(u)$ - число различных цветов в поддереве с корнем в вершине $u$. Время работы - $O(DCU)$. &lt;br /&gt;
# Используя результат предыдущей задачи, найти наибольшую общую подстроку $k$ строк за $O(n + DSU)$.&lt;br /&gt;
# Найти наибольший общий подпалиндром за $ST + O(DSU)$.&lt;br /&gt;
# Найти наибольший максимальный повтор за $ST + O(n)$.&lt;br /&gt;
&amp;lt;/wikitex&amp;gt;&lt;/div&gt;</summary>
		<author><name>178.162.208.141</name></author>	</entry>

	</feed>