字首和 模板

2021-10-02 07:43:08 字數 1507 閱讀 6133

輸入乙個長度為n的整數序列。

接下來再輸入m個詢問,每個詢問輸入一對l, r。

對於每個詢問,輸出原序列中從第l個數到第r個數的和。

輸入格式

第一行包含兩個整數n和m。

第二行包含n個整數,表示整數數列。

接下來m行,每行包含兩個整數l和r,表示乙個詢問的區間範圍。

輸出格式

共m行,每行輸出乙個詢問的結果。

資料範圍

1≤l≤r≤n,1≤n,m≤100000,

−1000≤數列中元素的值≤1000

輸入樣例:

5 32 1 3 6 4

1 21 3

2 4輸出樣例:36

10

一維字首和 aa[i]=aa[i]+aa[i-1];

字首和一般都是從1開始

#include

#include

using

namespace std;

intmain()

return0;

}

輸入乙個n行m列的整數矩陣,再輸入q個詢問,每個詢問包含四個整數x1, y1, x2, y2,表示乙個子矩陣的左上角座標和右下角座標。

對於每個詢問輸出子矩陣中所有數的和。

輸入格式

第一行包含三個整數n,m,q。

接下來n行,每行包含m個整數,表示整數矩陣。

接下來q行,每行包含四個整數x1, y1, x2, y2,表示一組詢問。

輸出格式

共q行,每行輸出乙個詢問的結果。

資料範圍

1≤n,m≤1000,

1≤q≤200000,

1≤x1≤x2≤n,

1≤y1≤y2≤m,

−1000≤矩陣內元素的值≤1000

輸入樣例:

3 4 3

1 7 2 4

3 6 2 8

2 1 2 3

1 1 2 2

2 1 3 4

1 3 3 4

輸出樣例:

1727

21

二維字首和,計算字首和時,ss[i][j]=ss[i-1][j]+ss[i][j-1]-ss[i-1][j-1]+aa[i][j];

然後用字首和計算某一矩陣的時候,ss[x2][y2]-ss[x1-1][y2]-ss[x2][y1-1]+ss[x1-1][y1-1];

#include

using

namespace std;

int aa[

1234][

1234];

int ss[

1234][

1234];

intmain()

for(

int i=

1;i<=n;i++)}

while

(q--

)return0;

}

差分與字首和模板

一維字首和 模板題 acwing 795.字首和 s i a 1 a 2 a i for int i 1 i n i s i s i 1 a i 則a l a r s r s l 1 二維字首和 模板題acwing 796.子矩陣的和 s i,j 第i行j列格仔左上部分所有元素的和 以 x1,y1 ...

二維字首和 模板

描述 給你乙個m n的整數矩陣,在上面找乙個x y的子矩陣,使子矩陣中所有元素的和最大。輸入 輸入資料的第一行為乙個正整數 t,表示有 t 組測試資料。每一組測試資料的第一行為四個正整數 n,m,x,y 0輸入樣例 1 14 5 2 2 3 361 649 676 588 992 762 156 9...

二位字首和模板

輸入乙個 n 行 m 列的整數矩陣,再輸入 q 個詢問,每個詢問包含四個整數 x1,y1,x2,y2,表示乙個子矩陣的左上角座標和右下角座標。對於每個詢問輸出子矩陣中所有數的和。輸入格式 第一行包含三個整數 n,m,q。接下來 n 行,每行包含 m 個整數,表示整數矩陣。接下來 q 行,每行包含四個...