H 子段求和(51Nod 1081)

2021-08-11 07:35:57 字數 863 閱讀 5905

h 子段求和

給出乙個長度為n的陣列,進行q次查詢,查詢從第i個元素開始長度為l的子段所有元素之和。

例如,1 3 7 9 -1,查詢第2個元素開始長度為3的子段和,1 -1。3 + 7 + 9 = 19,輸出19。

input

第1行:乙個數n,n為陣列的長度(2 <= n <= 50000)。 

第2 至 n + 1行:陣列的n個元素。(-10^9 <= n

i i

<= 10^9) 

第n + 2行:1個數q,q為查詢的數量。 

第n + 3 至 n + q + 2行:每行2個數,i,l(1 <= i <= n,i + l <= n)

output

共q行,對應q次查詢的計算結果。

sample input

513

79-14

1 22 2

3 21 5

sample output

4

1016

19

這道題我開始是從第i個數直接加到i+l-1,然後交上去果然超限了
然後就先加再減。。。。我好像講不清楚,反正看**吧!
**:
#include #include #include using namespace std;

long long d[50005];

int main()

int q;

cin>>q;

while(q--)

{int l,r;

cin>>l>>r;

int k=r+l-1;

cout<

51nod 1081 子段求和

1081 子段求和 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出乙個長度為n的陣列,進行q次查詢,查詢從第i個元素開始長度為l的子段所有元素之和。例如,1 3 7 9 1,查詢第2個元素開始長度為3的子段和,1 1。3 7 9 19,輸出19。input 第1行 ...

51NOD 1081 子段求和

1081 子段求和 給出乙個長度為n的陣列,進行q次查詢,查詢從第i個元素開始長度為l的子段所有元素之和。例如,1 3 7 9 1,查詢第2個元素開始長度為3的子段和,1 1。3 7 9 19,輸出19。input 第1行 乙個數n,n為陣列的長度 2 n 50000 第2 至 n 1行 陣列的n個...

51 nod 1081 子段求和

1081 子段求和 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出乙個長度為n的陣列,進行q次查詢,查詢從第i個元素開始長度為l的子段所有元素之和。例如,1 3 7 9 1,查詢第2個元素開始長度為3的子段和,1 1。3 7 9 19,輸出19。input 第1行 ...