Pagini recente » Diferente pentru planificare/sedinta-20080314 intre reviziile 16 si 33 | Diferente pentru preoni-2007/runda-finala/solutii intre reviziile 9 si 8
Nu exista diferente intre titluri.
Diferente intre continut:
{$level{~x~}$} = minim({$level{~parinte[x]~}$}; {$level{~y~}$} | y fiu al lui x; {$level{~u~}$} | {$u->x$} muchie inainte )
Simultan cu vectorul {$level$} construim si vectorul {$low$}.
Pe baza informatiilor astfel calculate, construim un arbore cu $N$ noduri in care tatal nodului {$i$}, $i$ de la $1$ la {$N$}, va fi {$low{~i~}$}. Acum trebuie sa aflam nodul $u$ din acest arbore care indeplineste {$nivel{~u~}$} ≤ {$nivel{~L~}$} si {$u$} se afla cat mai aproape de {$x$}. Raspunsul pe query va fi dat de diferenta de nivel dintre $u$ si {$x$}.
Pentru a afla nodul $u$ in timp logaritmic ne putem intoarce pe stramosi ai lui $x$ pe baza de puteri ale lui 2 sau putem afla nodul $u$ in O(1), demonstrand ca nodul cautat $u$ este fie {$L$}, fie {$parinte{~L~}$} in acest arbore.
==Include(page="template/preoni-2007/footer")==
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.