Pourquoi une gamme interrogez-vous sur une arborescence de segment de retour à la plupart $ \ lceil \ log_2 {n} \ rceil $ nœuds?

cs.stackexchange https://cs.stackexchange.com/questions/125095

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?

Était-ce utile?

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 $ .

réclamation 1. si $ m <2 ^ n $ alors tout intervalle de la forme $ [0, m-1] $ peut être écrit comme l'union disjointe d'au plus $ N $ intervalles dyadiques.

Preuve. Développer $ M $ Comme une somme de pouvoirs décroissants de 2: $$ m= 2 ^ {a_1} + \ CDOT + 2 ^ {a_k}. $$ Ensuite, nous pouvons écrire $$ [0, M-1]= [0,2 ^ {A_1} -1] \ tasse [2 ^ {A_1}, 2 ^ {A_1} + 2 ^ {A_2} -1] \ CUP \ CDOT \ CUPT [2 ^ {A_1} + \ CDOTS + 2 ^ {A_ {K-1}}, 2 ^ {A_1} + \ CDOT + 2 ^ {A_K} -1]. $$

réclamation 2. si 0 \ LEQ M_1 \ LEQ M_2 \ LEQ 2 ^ N $ Alors tout intervalle de la forme $ [m_1, m_2-1] $ peut être écrit comme l'union disjointe d'au plus $ 2n $ $ intervalles dyadiques.

preuve. l'expansion binaire de $ m_1 $ et $ m_2 $ est de la forme $ m_1= x0y, m_2= x1z $ , où $ | 0 $ < / span>. Laissez $ m= x10 ^ {| z |} $ . En utilisant la revendication 1, nous pouvons exprimer $ [0, m_2-m-1] $ comme une union de $ n $ intervalles dyadiques. Déplacer ceux-ci par $ m $ , nous exprimons $ [m, m_2-1] $ comme union de Au plus N $ N $ Dyadic Intervalles. De même, en utilisant la revendication 1, nous pouvons exprimer $ [0, m-m_1-1] $ comme une union d'au plus $ N $ intervalles dyadiques. Changeant et inverseur, nous exprimons $ [m_1, m-1] $ comme union de la plupart $ n $ Intervalles dyadiques.

(dans les deux cas, il faut vérifier que le déplacement et éventuellement inversements, les présidents d'un intervalle d'être dyadiques.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top