題目連結:
給定一正整數 n (1 ≦ n ≦ 200000),代表一數列 A 的長度。接著的一列有 n 個整數(絕對值皆不超過 10 ^ 9),依序代表 A1 、 A2 、 …… 、 An 的值。
再緊接著的一列給定一正整數 q (1 ≦ q ≦ 200000),代表有 q 筆的詢問。每筆詢問佔一列,每列給定兩正整數 l 、 r ,代表詢問 Al ~ Ar 這 r - l + 1 個數字的總和為多少?
先計算數列 A 的前綴和數列 S(見
先前的文章)。設 S
0 = 0 、 S
1 = A
1 、 S
2 = A
1 + A
2 、 …… 、 S
n = A
1 + A
2 + …… + A
n ,則每給定一對 l 、 r 值,所求即為 S
r - S
(l-1) 。而不用重複地用迴圈去計算 A
l ~ A
r 的總和。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。