Size: a a a

2020 July 15

K

Kotomord_λapki in pro.algorithms
 ‌‌Gleb Pilipets
Привет всем, а как найти в дереве Фенвика минимальный индекс, в котором префикс сумма равна заданному значению за O(logN)??

int l = 0, r = n;
while(l < r) {
   int midd = l + (r-l)/2;
   if (get_sum(BIT, midd+1) < given_sum)
       l = midd+1;
   else
       r = midd;
}
// res => midd + 1
Сейчас нахожу за O(log^2(N)), но наибольший и любой из индексов можно найти за O(logN), поэтому предполагаю, что и наименьший можно.

Обычное дерево Фенвика на массиве BIT(n+1, 0);
   void update(vector<int> &BIT, int idx, int delta){
       for(int i = idx; i < BIT.size(); i +=(i&-i))
           BIT[i] += delta;
   }
   int get_sum(vector<int>& BIT, int idx){
       int sum = 0;
       for(int i = idx; i > 0; i-=(i&-i))
           sum += BIT[i];
       return sum;
   }
а зачем не дерево отрезков?
источник

MB

Mikail Bagishov in pro.algorithms
Kotomord_λapki
а зачем не дерево отрезков?
Медленное и жирное?
источник

K

Kotomord_λapki in pro.algorithms
Mikail Bagishov
Медленное и жирное?
так тот же O(log n)  на операцию и O(n) по памяти
источник

MB

Mikail Bagishov in pro.algorithms
Kotomord_λapki
так тот же O(log n)  на операцию и O(n) по памяти
Но константа лучше
источник

K

Kotomord_λapki in pro.algorithms
источник

K

Kotomord_λapki in pro.algorithms
де вы последний раз видели задачу, которая сдаётся Фенвиком, но не сдаётся ДО?
источник

A

Andrey Borzenkov in pro.algorithms
Если пихаешь вместо NsqrtN - NsqrtNlogN, то кажется это полезно
источник

MB

Mikail Bagishov in pro.algorithms
Kotomord_λapki
де вы последний раз видели задачу, которая сдаётся Фенвиком, но не сдаётся ДО?
На РОИ2018 была задача (2C,  робомарафон), в которой надо было пихать NlogN. Так как там потестовая оценка, фенвик давал больший балл.
источник

K

Kotomord_λapki in pro.algorithms
Mikail Bagishov
На РОИ2018 была задача (2C,  робомарафон), в которой надо было пихать NlogN. Так как там потестовая оценка, фенвик давал больший балл.
ого, там, поди, ещё от языка что-то зависело?
источник

MB

Mikail Bagishov in pro.algorithms
Kotomord_λapki
ого, там, поди, ещё от языка что-то зависело?
Думаю, все кроме плюсовиков шли в баню
источник

K

Kotomord_λapki in pro.algorithms
Mikail Bagishov
Думаю, все кроме плюсовиков шли в баню
источник

K

Kotomord_λapki in pro.algorithms
слищком редкое, на мой взгляд
источник

K

Kotomord_λapki in pro.algorithms
был один марафон на codeforces, где я понял, что решение нужно ускорять уже переписыванием на плюса, но было слишком лень
источник

AD

Alexey Dergunov in pro.algorithms
Kotomord_λapki
де вы последний раз видели задачу, которая сдаётся Фенвиком, но не сдаётся ДО?
военные учения 2.1
источник

AD

Alexey Dergunov in pro.algorithms
на тимусе
источник

MB

Mikail Bagishov in pro.algorithms
Слайд 137 примерно
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺... in pro.algorithms
Alexey Dergunov
убрать иф с == , поменять/не поменять > на >=, прибавить 1/0/-1 к результату, в каком то сочетании будет правильно
да
источник

K

Kotomord_λapki in pro.algorithms
Alexey Dergunov
на тимусе
Можно ссылку? Интересно
источник

K

Kotomord_λapki in pro.algorithms
Ни хрена себе тесты подогнаны
источник

KK

Kirill Kaymakov in pro.algorithms
Kotomord_λapki
де вы последний раз видели задачу, которая сдаётся Фенвиком, но не сдаётся ДО?
Овердофига на опенкапах
источник