Реализация запроса в дереве отрезков сверху — различия между версиями
(→Алгоритм) |
|||
Строка 2: | Строка 2: | ||
==Алгоритм== | ==Алгоритм== | ||
+ | Будем рассматривать запрос на примере задачи RSQ(запрос суммы) | ||
==Реализация== | ==Реализация== |
Версия 01:20, 4 мая 2011
{{Определение
Алгоритм
Будем рассматривать запрос на примере задачи RSQ(запрос суммы)
Реализация
int sum (int v, int tl, int tr, int l, int r) { if (l > r) return 0; if (l == tl && r == tr) return t[v]; int tm = (tl + tr) / 2; return sum (v*2, tl, tm, l, min(r,tm)) + sum (v*2+1, tm+1, tr, max(l,tm+1), r); }