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

Материал из Викиконспекты
Перейти к: навигация, поиск
(Алгоритм)
(Алгоритм)
Строка 2: Строка 2:
  
 
==Алгоритм==
 
==Алгоритм==
  Будем рассматривать запрос на примере задачи RSQ(запрос суммы)
+
Будем рассматривать запрос на примере задачи 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);
 } 

Ссылки

- MAXimal :: algo :: Дерево отрезков

- Дерево отрезков — Википедия