Lazy Segment Trees - TLE 4
Lazy Segment Trees - TLE 4
Range Queries I
O(n)
(Lazy Propagation) n
=
0
(logn)
B wild, Update f
Query -
-
-
⑧(loga)
-
-
update value inden"pos"=
at
n
2
ollogn)
-
time
① - -
update
all the values from 1 to s
by adding as D
to
dsdon in
ranga (5,01
dbbdodo
-
-
12 1223 I
At i
12
our getdog
34
I O
And
000
old (14)
to
+ 10
to -
v
Query
E
aucies
Range
Completeoverlap (
① [I]
Node
② Disjont [] [ I
Return Dafaut Valu
%/b c c)
Range Update
Yo ⑱
all nodes
in give range
date deg
② Disjoint [][]
return
just
No
18
Ranga update
using lazy segment
Tree
·(gr)
-
Range query - 0(
-
logn)
build
update()
check if there are
any
*
qu pending changes in
lazy
segment He
>
=>
%co
d dobods 3
update(3,bs
[I 2 (0) O
Range
↑ M Range update (3,4,5
J
5
Range query (M)
is
·
Range
(3,7)
update
+ E
⑯ .s
-
Range update
do
(114)-> 10
-
Range query
(2,3)
- o
Use Case
dd!
-
↓
2 3
-
- 55
lang in)=
lazy (indent
.. 9
.
8
e
X
③
Add 15,63 -
5
Lazy Segment Tree
● Range Updates are similar to Range Queries
● Same number of recursive calls for query as that for update
● Time Complexity for each update: O(logN)
● Time Complexity for each query: O(logN)
● Extra O(N) space for storing an additional tree
● Slower than normal segment tree
● Harder to code (Use Generic Segment Tree Code)
● Nothing fancy if you understand it properly - Super intuitive