Skip to content

Commit b80dafe

Browse files
committed
code style
1 parent adcdf62 commit b80dafe

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

content/russian/cs/range-queries/sqrt-structures.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ authors:
44
- Сергей Слотин
55
- Иван Сафонов
66
weight: 6
7-
date: {}
8-
published: true
7+
date: 2022-08-16
98
---
109

1110
Корневые оптимизации можно использовать много для чего, в частности в контексте структур данных.
@@ -24,16 +23,15 @@ published: true
2423
```c++
2524
// c это и количество блоков, и также их размер; оно должно быть чуть больше корня
2625
const int maxn = 1e5, c = 330;
27-
int a[maxn], b[c];
28-
int add[c];
26+
int a[maxn], b[c], add[c];
2927

3028
for (int i = 0; i < n; i++)
3129
b[i / c] += a[i];
3230
```
3331

34-
Заведем также массив `add` размера $\sqrt n$, который будем использовать для отложенной операции прибавления на блоке. Будем считать, что реальное значение $i$-го элемента равно `a[i] + add[i / c]`.
32+
Заведем также массив `add` размера $\sqrt n$, который будем использовать для отложенной операции прибавления на блоке: будем считать, что реальное значение $i$-го элемента равно `a[i] + add[i / c]`.
3533

36-
Теперь мы можем отвечать на запросы первого типа за $O(\sqrt n)$ на запрос:
34+
Теперь мы можем отвечать на запросы первого типа за $O(\sqrt n)$ операций на запрос:
3735

3836
1. Для всех блоков, лежащих целиком внутри запроса, просто возьмём уже посчитанные суммы и сложим.
3937
2. Для блоков, пересекающихся с запросом только частично (их максимум два — правый и левый), проитерируемся по нужным элементам и поштучно прибавим к ответу.
@@ -69,7 +67,7 @@ void upd(int l, int r, int x) {
6967
l += c;
7068
}
7169
else {
72-
b[l / c] += x;
70+
b[l / c] += x;
7371
a[l] += x;
7472
l++;
7573
}

0 commit comments

Comments
 (0)