樹狀陣列 求和問題題解

2022-06-04 05:09:08 字數 611 閱讀 2211

題目:求和問題

描述:【問題描述

在乙個長度為n的整數數列中取出連續的若干個數,並求它們的和。

【輸入格式】

輸入由若干行組成,第一行有乙個整數n

第二行有n個整數

第三行有乙個整數m

下面m行,每行兩個整數i與j(i<=j),表示求和的起始和終止位置。

【輸出格式】

輸出有m行, 每行乙個整數,表示這個數段數列的和。

【輸入樣例】

輸入檔案

82 3 4 7 8 9 10 234

52 3

4 71 3

7 7

7 8

輸出檔案

7 34

910

244

【資料規模】

對於40%的資料,n<=1000,m<=1000,數列中的數不超過32767,數列的和不超過10^9

對於70%的資料,n<=10000,m<=2*10^5,數列中的數不超過32767

對於100%的資料,n<=10000,m<=2*10^5,數列中的數不超過10^9

ac**:

樹狀陣列 區間求和

樹狀陣列 是乙個查詢和修改複雜度都為log n 的資料結構,假設陣列a 1.n 那麼查詢a 1 a n 的時間是 log n 級別的。所以如果要解決 陣列中的元素不斷被修改,怎麼才能快速地獲取陣列中連續m個數的和 這個問題的話,用樹狀陣列就再好不過了 首先,什麼是樹狀陣列呢?樹狀陣列就是用另外乙個陣...

樹狀陣列入門(求和)

輸入乙個數列a1,a2 an 1 n 100000 在數列上進行m 1 m 100000 次操作,操作有以下兩種 1 格式為c i x,其中c為字元 c i和x 1 i n,x 10000 都是整數,表示把把a i 改為x 2 格式為q l r,其中q為字元 q l和r表示詢問區間為 l,r 1 l...

樹狀陣列入門(求和)

輸入乙個數列a1,a2 an 1 n 100000 在數列上進行m 1 m 100000 次操作,操作有以下兩種 1 格式為c i x,其中c為字元 c i和x 1 i n,x 10000 都是整數,表示把把a i 改為x 2 格式為q l r,其中q為字元 q l和r表示詢問區間為 l,r 1 l...