演算法練習 797 差分

2021-10-23 09:14:27 字數 855 閱讀 2750

797.差分

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

接下來輸入m個操作,每個操作包含三個整數l, r, c,表示將序列中[l, r]之間的每個數加上c。

請你輸出進行完所有操作後的序列。

輸入格式

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

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

接下來m行,每行包含三個整數l,r,c,表示乙個操作。

輸出格式

共一行,包含n個整數,表示最終序列。

資料範圍

1≤n,m≤1000001≤n,m≤100000,

1≤l≤r≤n1≤l≤r≤n,

−1000≤c≤1000−1000≤c≤1000,

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

輸入樣例:

6 3

1 2 2 1 2 1

1 3 1

3 5 1

1 6 1

輸出樣例:
3 4 5 3 4 2
(**** acwing yxc)

#includeusing namespace std;

const int n = 100010;

int n,m;

int a[n],b[n];

void insert(int l,r,c)

int main()

for(int i = 0;i <= n;i ++) b[i]+=b[i-1];

for(int i = 0;i <= n;i ++) printf("%d ",b[i]);

return 0;

}

ACWING演算法經典 797 一維差分演算法

原題鏈結 寫法一 先構造查分數列b n include using namespace std const int n 100010 int n,m,l,r,c int a n b n int main for int i 1 i n i b i b i 1 b i 求差分陣列的字首和,字首和即為所...

演算法練習 798 差分矩陣

798.差分矩陣 輸入乙個n行m列的整數矩陣,再輸入q個操作,每個操作包含五個整數x1,y1,x2,y2,c,其中 x1,y1 和 x2,y2 表示乙個子矩陣的左上角座標和右下角座標。每個操作都要將選中的子矩陣中的每個元素的值加上c。請你將進行完所有操作後的矩陣輸出。輸入格式 第一行包含整數n,m,...

字首和,差分演算法

其實可以把它理解為數學上的數列的前n項和 對於乙個一維陣列的字首和 我們定義對於乙個陣列a的字首和陣列s,s i a 1 a 2 a i 與一維字首和類似,設s i j 表示所有a i j 的和。1 i i,1 j j 有一點像 矩形的面積 那樣,把一整塊區域的值都加起來。一般用來求區間和。對於一維...