Arbres Red-Black

Hi ha diverses maneres de balancejar un arbre binari amb nn elements per aconseguir que tingui alçada Θ(logn)\Theta(\log n). Una de popular són els arbres Red-Black, on cada node està pintat de vermell o de negre. Les propietats que han de complir els arbres Red-Black són:

Per exemple, aquests són els 16 arbres Red-Black d’alçada 3 amb l’arrell vermella:

Per convenció, les fulles buides no es mostren. Per exemple, el fill esquerre del node negre de la dreta del primer arbre és una fulla buida, la qual és l’única que s’ha dibuixat.

Els arbres Red-Black es poden ordenar de diverses maneres. Aquesta n’és una: L’arbre buit és el primer arbre. Donats dos arbres no buits, si tenen les arrels de colors diferents, va abans el que té l’arrel vermella. En cas d’igualtat, es desempata amb el subarbre esquerre. En cas d’un altre empat, es desempata amb el subarbre dret. Els 16 arbres anteriors estan ordenats.

Donats dos nombres hh i ii, podeu trobar l’ii-èsim arbre Red-Black d’alçada hh?

Entrada

L’entrada conté diversos casos, cadascun amb l’alçada hh i l’índex ii. Podeu suposar 0h60 \le h \le 6, i que l’índex ii es troba entre 1 i el nombre d’arbres Red-Black d’alçada hh. (Per a h=6h=6, n’hi ha 3822531721037.)

Sortida

Per a cada cas, escriviu una línia amb el recorregut en preordre de l’arbre resultat: feu servir punts per marcar els arbres buits, ‘R’ per als nodes vermells, i ‘B’ per als nodes negres.

Puntuació

Informació del problema

Autoria: Salvador Roura

Generació: 2026-01-25T10:07:45.686Z

© Jutge.org, 2006–2026.
https://jutge.org