Pourquoi une gamme interrogez-vous sur une arborescence de segment de retour à la plupart $ \ lceil \ log_2 {n} \ rceil $ nœuds?
-
29-09-2020 - |
Question
Si un tableau $ a [1 \ ldots n] $ est représenté à l'aide d'un arbre de segment ayant des ensembles dans chaque intervalle, pourquoi une requête de plage $ [l \ ldots r] $ retourne au plus $ \ lceil \ log_2 {n} \ rceil $ ensembles (ou disjoint intervalles)?
Si je suis tombé sur cette déclaration en lisant cette réponse .
pour citer:
Trouver une couverture disjointe de la plage de requêtes en utilisant le segment standard Procédure de requête d'arbre. Nous obtenons $ o (\ journal n) $ nœuds disjoints, l'union de dont les multisets sont exactement le multiset de valeurs dans la plage de requêtes. Appelons ces multisettes $ s_1, \ points, s_m $ (avec $ m \ lceil \ log_2 n \ rceil $ ).
J'ai essayé de chercher une preuve, mais je ne pouvais pas le trouver sur un site. Quelqu'un peut-il m'aider à le prouver?
La solution
Voici l'idée de base.
Laisser un dyadique l'intervalle est un intervalle de la forme $$ [2 ^ b a, 2 ^ b (A + 1) -1 -1] $$ Pour certains entier $ a, b \ geq 0 $ .
(dans les deux cas, il faut vérifier que le déplacement et éventuellement inversements, les présidents d'un intervalle d'être dyadiques.)