Я шукаю структуру даних, яка б підтримувала цілу таблицю розміром і дозволила наступні операції в часі .n O ( журнал n )
- , що збільшує .
- , яке зменшує .
- , який повертає кількість індексів таких, що .t [ i ] ≠ 0
Ви обіцяєте, що кожен виклик, який зменшується, може бути порівняний з попереднім викликом для збільшення з тими ж параметрами . Я маю на увазі додаток - алгоритм швидкої лінії для обчислення за часом області об'єднання n заданих прямолінійних прямокутників.O ( n log n )
Квадратне дерево має розмір , тому це не є рішенням. Дерева Fenwick або Interval мають правильний аромат, але я не бачу, як їх розширити, щоб підтримати вищеописані операції.