一維字首和更新與維護

2022-08-10 19:39:16 字數 686 閱讀 6575

現在有乙個n個元素的陣列a,而他要對a[l]-a[r]進行m次操作:

操作一:將a[l]-a[r]內的元素都加上p

操作二:將a[l]-a[r]內的元素都減去p

最後詢問a[l]-a[r]內的元素之和?

n,m <= 1e6

1 #include 2 #include 3 #include 4 #include 5

6using

namespace

std;

7const

int n = 1e6+10;8

intn,m;

9int

a[n],b[n];

10int

main()

1125

else

2630}31

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

32 b[i] += b[i-1

];33 scanf("

%d%d

",&l,&r);

34long

long sum = 0;35

for(int i = l; i <= r; i++)

36 sum+=a[i]+b[i];

37 cout39return0;

40 }

一維字首和與二維字首和

什麼是字首和?字首和是乙個陣列的某項下標之前 包括此項元素 的所有陣列元素的和。作用 快速求出某一段區間的總和 such as 求出a 3 a 4 a 15 sum 15 sum 2 sum為字首和 優勢 可以在o 1 的複雜度求出某一部分的總和 設b為字首和陣列,a為原陣列,根據這句話可以得到字首...

字首和演算法 一維字首和 二維字首和

輸入乙個長度為n的整數序列。接下來再輸入m個詢問,每個詢問輸入一對l,r。對於每個詢問,輸出原序列中從第l個數到第r個數的和。輸入格式 第一行包含兩個整數n和m。第二行包含n個整數,表示整數數列。接下來m行,每行包含兩個整數l和r,表示乙個詢問的區間範圍。輸出格式 共m行,每行輸出乙個詢問的結果。資...

一維字首和

1 一維字首和 模板 一維字首和 模板題 acwing 795.字首和 s n a i a 2 a 3 a 4 a n s n s n 1 a n a l a l 1 a r s r s l 1 acwing795.字首和 輸入乙個長度為n的整數序列。接下來再輸入m個詢問,每個詢問輸入一對l,r。對...