I read the approach for finding Range minimum value using 2 Binary Indexed Trees. Is it possible to do this problem using only one BIT when updates are also there?
I read the approach for finding Range minimum value using 2 Binary Indexed Trees. Is it possible to do this problem using only one BIT when updates are also there?
| # | User | Rating |
|---|---|---|
| 1 | jiangly | 3810 |
| 2 | Benq | 3676 |
| 3 | Kevin114514 | 3655 |
| 4 | maroonrk | 3463 |
| 5 | strapple | 3447 |
| 6 | Um_nik | 3387 |
| 7 | heuristica | 3322 |
| 8 | turmax | 3317 |
| 9 | tourist | 3307 |
| 10 | jiangbowen | 3291 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 156 |
| 2 | nik_exists | 150 |
| 2 | maspy | 150 |
| 4 | Um_nik | 141 |
| 5 | Errichto | 139 |
| 6 | adamant | 137 |
| 7 | AmShZ | 135 |
| 8 | BledDest | 132 |
| 9 | maroonrk | 131 |
| 10 | qwexd | 129 |
| Name |
|---|



No, a normal BIT is only able to answer prefix RMQs. A BIT doesn't have enough information to answer a general RMQ (as it doesn't even store the value of each element).
You sure?
I have read this paper previously .In this paper two BITs have been used . I want to know if we can achieve the same result using a single BIT.
Found one approach for solving RMQ using BIT(without updates). Suppose our query range is [L,R]. We know that BIT[i] stores the result from index [i-(i & (-i))+1] to index i.
So for given query we start from R. Now first we check if index [R-(R & (-R))+1]>=L or not. if yes we just update the minimum value using the value in BIT[R] and update R by subtracting (R & (-R)) from R . if not then we just take minimum of A[R] and current answer and update R to R-1.
We keep on doing this while(R>=L).
This algorithm will return the correct result but cost
time complexity if you query the range [2, n].
Can you provide some explanation for this complexity. Not able to get it.
Firstly R will go to the biggest 2k satisfying 2k ≤ n, then the progress will be
, between the progress
it would take k times. So the total time complexity is Θ(k2).