Module: Penguraian akar


Problem

1 /6


Jumlah pada segmen - 1

Theory Click to read/hide

Kami menghadapi masalah tentang cara mengira dengan cepat jumlah pada selang l...r dalam tatasusunan statik a dalam kurang daripada O(n) asimptotik.
Mari kita bahagikan tatasusunan a kepada blok k yang sama saiz dan mula-mula hitung jumlah elemen bagi setiap satu daripadanya.
Sekarang, apabila menjawab permintaan, kita boleh melalui elemen tatasusunan a dan menambahkannya pada hasil, juga jika salah satu blok terletak di dalam segmen, maka kita boleh menambah jumlahnya pada hasil dan melangkau elemen blok ini.
Bilangan maksimum operasi bagi setiap pertanyaan dengan algoritma ini ialah n / k + k, jadi k optimum adalah sama dengan punca kuasa dua n.
 

Problem

Diberi tatasusunan a dengan panjang n (\(1 <= n <= 2 \cdot 10^6\ )< /span>, \(1 <= a_i <= 10^9\)). Juga diberikan pertanyaan m (\(1 <= m <= 500\)) seperti l, r (\(1 <= l <= r <= n\)).

Untuk setiap pertanyaan, cetak jumlah nombor antara l dan r inklusif. Elemen dinomborkan bermula dengan 1 kepada n.

 

Contoh
# Input Output
1
4
1 2 3 4
2
1 4
1 1
10
1
2
5
5 5 5 5 5
1
5 5
5