|
|
back to boardКак сэкономить? Я построил дерево, программа работает правильно, но требует около 90МБ памяти. Как можно сократить количество используемой на дерево памяти? Re: Как сэкономить? Попробуй взять другой алгоритм. Префиксные массивы проходят по времени. Re: Как сэкономить? there exist simple O(N^2) DP (N^2 memory) but on the contest i have solve it in O(N^2) using hash (O(N) memory) Re: Как сэкономить? Posted by SPIRiT 10 Jun 2008 17:38 Что за дерево Вы строите? Я строил суффиксное дерево, представляя ребра как два целых числа - начало и длины. Всего я поставил ограничение на массив вершин, используемых деревом, 40000 вершин (что в память уложится по-любому - в вершине хранится начало текста, длина текста, и 26 указателей на потомков). Совет: дерево должно быть компактным, то есть не отводить по вершине на символ, а только на разветвления, в этом случае дерево требует O(m) вершин, где m - длина текста. Проходит наивный алгоритм построения за O(N^2). Re: Как сэкономить? How to DP in this problem? |
|
|