Изменения

Перейти к: навигация, поиск

Реализация запроса в дереве отрезков сверху

231 байт добавлено, 14:08, 30 апреля 2012
Реализация
<code>
int get_sum (int <tex>node</tex>, int <tex>a</tex>, int <tex>b</tex>)
{
// Используем в реализаций полуинтервалы
<tex>l </tex> = tree[<tex>node</tex>].left; <tex>r </tex> = tree[<tex>node</tex>].right; if <tex>[l, r) <tex>\bigcap</tex> [a, b) </tex> == <tex> \varnothing</tex>
return 0;
if <tex>[l, r) </tex> == <tex>[a, b)</tex> return tree[<tex>node</tex>]; int <tex>m </tex> = (<tex>l </tex> + <tex>r</tex>) / 2; return get_sum (<tex>node </tex> * 2 + 1, <tex>a</tex>, min(<tex>b</tex>, <tex>m</tex>)) + get_sum (<tex>node </tex> * 2 + 2, max(<tex>a</tex>, <tex>m</tex>), <tex>b</tex>);
}
</code>
333
правки

Навигация