51NOD 1081 子段求和

2021-08-15 13:16:18 字數 1084 閱讀 8763

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個元素。(-10^9 <= n[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次查詢的計算結果。

字首和

#include using

namespace

std;

const

int maxn = 50010

;typedef

long

long

ll;int

n,k;

ints[maxn];

ll sum [maxn];

intmain ()

scanf("%d

", &k);

for(int i=1;i <= k;i++)

return0;

}

樹狀陣列

#include using

namespace

std;

const

int maxn = 50010

;typedef

long

long

ll;int

n,k;

ll bit[maxn];

void update(int i,intd)}

ll sum (

inti)

returns;}

intmain ()

scanf("%d

", &k);

for(int i=1;i <= k;i++)

return0;

}

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行 ...

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行 ...

51nod 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個元素。10 9 n ...