From 32b338597d4877eae8578d5b6986953e447c0847 Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Wed, 13 Oct 2021 15:12:19 +0200 Subject: Prove observation --- mgr.tex | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'mgr.tex') diff --git a/mgr.tex b/mgr.tex index 7e45d2f..bf2f507 100644 --- a/mgr.tex +++ b/mgr.tex @@ -443,14 +443,36 @@ array \indextable. \begin{observation} Given a node $x$ and its descendant $y$, looking at the range - $\prefixtable[\indextable[y], \indextable[x] - 1]$, all the values in this - range are descendants of $x$, and the values smaller than - $\prefixtable[\indextable[y]]$ correspond to ancestors of $y$. In - particular, the minimum of that range corresponds to the highest ancestor of - $y$ that is also a descendant of $x$. + $\prefixtable[\indextable[y], \indextable[x] - 1]$: + \begin{enumerate} + \item All the values in this range correspond to descendants of $x$. + \label{obs-descendants} + \item The values smaller than $\prefixtable[\indextable[y]]$ correspond + to ancestors of $y$. \label{obs-ancestors} + \item In particular, the minimum of this range corresponds to the + highest ancestor of $y$ that is also a descendant of $x$. + \label{obs-conclusion} + \end{enumerate} \end{observation} -In our problem, we only care about ancestors of $y$ that are colored black. So +The pre-order labels in \prefixtable\ are ordered according to a post-order. In +a post-order, the root of a subtree is visited directly after all its +descendants. Since $y$ is a descendant of $x$, all values between its position +in \prefixtable\ and $x$'s position there will also be descendants of $x$, +giving item \ref{obs-descendants}. + +The values in \prefixtable\ are pre-order numbers. In a pre-order, for a given +node $z$, the only nodes that will have lower pre-order numbers are $z$'s +ancestors, and the children of these ancestors that are to the left of the child +towards $z$. By starting our range at index $\indextable[y]$, we've skipped over +all of the second types of vertices with lower pre-order numbers, leaving only +$y$'s ancestors as nodes in the range with a lower pre-order number. This gives +us item \ref{obs-ancestors}. + +Items \ref{obs-descendants} and \ref{obs-ancestors} together give us item +\ref{obs-conclusion}. + +In our problem, we only care about ancestors of $y$ that are marked. So we perform one final modification of our data structure: for all non-black vertices $v$, we change $\prefixtable[\indextable[v]]$ to $\infty$ (which can be represented by $n+1$, an integer greater than any node's pre-order label). With -- cgit v1.2.3