Saya mencari struktur data yang akan mempertahankan tabel integer ukuran n , dan memungkinkan operasi berikut dalam waktu O ( log n ) .
- , yang meningkatkan t [ a ] , t [ a + 1 ] , … , t [ b ] .
- , yang berkurang t [ a ] , t [ a + 1 ] , … , t [ b ] .
- , yang mengembalikan jumlah indeks i sedemikian rupa sehingga t [ i ] ≠ 0 .
Anda memiliki janji bahwa setiap panggilan untuk mengurangi dapat dicocokkan dengan panggilan sebelumnya untuk meningkat dengan parameter yang sama . Aplikasi yang ada dalam pikiran saya adalah algoritma sweepline untuk menghitung waktu O ( n log n ) area persatuan n yang diberikan persegi bujursangkar.
Quad-tree akan memiliki ukuran , jadi itu bukan solusi. Pohon Fenwick atau Interval memiliki cita rasa yang tepat, tetapi saya tidak melihat cara memperpanjangnya untuk mendukung operasi di atas.