V¹imnìme si, ¾e pokud vede z~nìjakého u¾ nakresleného vrcholu je¹tì nenakreslená hrana,
lze pokraèovat po~nenakreslených hranách a¾ do~koøene DFS stromu. V¹echny vrcholy, ke~kterým
-je¹tì bude potøeba nìco pøipojit (takovým budeme øíkat {\I externì aktivní} a za~chvíli
-to nadefinujeme formálnì), proto musí le¾et v~té¾e stìnì dosud nakresleného
+je¹tì bude potøeba nìco pøipojit (takovým budeme øíkat {\I externì aktivní} a hranám
+rovnì¾; za~chvíli to nadefinujeme formálnì), proto musí le¾et v~té¾e stìnì dosud nakresleného
podgrafu a bez újmy na~obecnosti si vybereme, ¾e to bude vnìj¹í stìna.
Základním krokem algoritmu tedy bude roz¹íøit nakreslení o~nový
Abychom mohli alespoò adresovat vstup, musí být $w\ge\log N$,
kde $N$ je celková velikost vstupu.
Jeliko¾ aritmetiku s~$\O(1)$-násobnou pøesností lze simulovat s~konstantním
-zpomalením, mù¾eme pøedpokládat, ¾e $w=\Omega(\log n)$, tedy ¾e lze pøímo pracovat
+zpomalením, mù¾eme pøedpokládat, ¾e $w=\Omega(\log N)$, tedy ¾e lze pøímo pracovat
s~èísly polynomiálnì velkými vzhledem k~$N$. Je¹tì bychom si mìli ujasnit,
jakou mno¾inu operací povolíme:
jedné tøídy pod koøen druhé. Aby stromy nedegenerovaly, pøidáme dvì pravidla:
\itemize\ibull
-\:{\I Union by rank:} ka¾dý koøen $v$ si pamatuje svùj rank $r(v)$. Pokud spojujeme
+\:{\I Union by rank:} ka¾dý koøen $v$ si pamatuje svùj rank $r(v)$. Na~poèátku
+jsou v¹echny ranky nulové. Pokud spojujeme
dva stromy s~koøeny $v$, $w$ a $r(v)<r(w)$, pøipojíme $v$ pod~$w$ a rank zachováme.
Pokud $r(v)=r(w)$, pøipojíme libovolnì a nový koøen bude mít rank $r(v)+1$.%
\foot{Stejnì by fungovalo pravidlo {\I Union by size,} které pøipojuje men¹í
\itemize\ibull
\:Ka¾dý vrchol se nachází v~právì jednom clusteru (hrany mohou vést i mezi clustery).
\:Ka¾dý cluster má nejvý¹e~$c$ vrcholù.
-\:Vnìj¹í stupeò ka¾dého clusteru (tj. poèet hran, které vedou mezi $C_i$ a zbytkem grafu)
-je nejvý¹e~3. Navíc pokud je právì~3, je cluster triviální, èili $\vert C_i \vert = 1$.
+\:Vnìj¹í stupeò ka¾dého clusteru (tj. poèet hran, které vedou mezi $C_i$ a ostatními
+clustery; mezi ka¾dou dvojicí clusterù poèítáme jen jednu hranu) je nejvý¹e~3.
+Navíc pokud je právì~3, je cluster triviální, èili $\vert C_i \vert = 1$.
\:®ádné dva sousední clustery nelze spojit.
\endlist
èasem na~pøevod dotazu.
\proof Strom projdeme do~hloubky a poka¾dé, kdy¾ vstoupíme do~vrcholu (a» ji¾ poprvé nebo se do~nìj vrátíme),
-zapí¹eme jeho hloubku. ${\rm LCA}(x,y)$ pak bude nejhlub¹í vrchol mezi libovolnou
+zapí¹eme jeho hloubku. ${\rm LCA}(x,y)$ pak bude nejvy¹¹í vrchol mezi libovolnou
náv¹tìvou~$x$ a libovolnou náv¹tìvou~$y$.
\qed