# 連續和相關問題
---
## 1. 區間求和問題
----
* 此問題已經在[這裡](https://hackmd.io/@aacp/rk3xLLtNc#/2)提過了
* 進階練習題:[ABC 122 C - GeT AC](https://atcoder.jp/contests/abc122/tasks/abc122_c)
---
## 2. 差分序列
----
* 給定序列 $a$ (從 $1$ 開始編號),我們定義序列 $a$ 的<font color="0x00ff00">前綴和序列</font> $S$ 的產生方式為 $s_i = \sum\limits_{j=1}^i a_j$
* 類似的,我們定義 $a$ 的<font color="0xff00ff">差分序列</font> $d$ 產生方式為 $d_i = a_i - a_{i-1}$ (令 $a_0 = 0$)
* 兩個性質:
1. 一個序列的<font color="0x00ff00">前綴和序列</font>的<font color="0xff00ff">差分序列</font>就是自己。
2. 一個序列的<font color="0xff00ff">差分序列</font>的<font color="0x00ff00">前綴和序列</font>也是自己。
----
* 差分序列常用來解以下問題:
* 給定一個序列 $a$,長度為 $N$,接著有 $Q$ 個操作,每個操作會給你三個參數 $L_i, R_i, V_i$,請把序列 $a$ 的第 $L_i$ 到 的 $R_i$ 個數字都增加 $V_i$,請輸出所有操作完成後序列 $a$ 的樣子。
* 可做到時間複雜度 $O(N+Q)$。
----
範例輸入:
```
5 3
1 2 3 4 5
2 4 -2
3 5 3
1 4 1
```
範例輸出:
```
2 1 5 6 8
```
* [參考程式碼](https://gist.github.com/dreamoon4/10d2c34a9459928ae9ce3d1234cc79d4)
----
* 練習題:
1. [Weekly Training Farm 26 B. Power](https://codeforces.com/group/gRkn7bDfsN/contest/212178/problem/B)
2. [ABC183 D - Water Heater](https://atcoder.jp/contests/abc183/tasks/abc183_d)
3. [CF1501 B. Napoleon Cake](https://codeforces.com/problemset/problem/1501/B)
----
* 進階習題:[CF1700 C. Helping the Nature](https://codeforces.com/problemset/problem/1700/C)
* 此題乍看之下很複雜,但把每種操作都找出對應的差分序列上的操作,就變簡單囉。
---
## 3. 連續和相關問題
----
* 看到題目出現序列中的「連續和」的概念時,不妨先求出原序列的「前綴和序列」,這樣子轉變後,「連續和」的概念就變為某個編號大的數字減去編號小的數字。這樣的轉變常常能幫助我們解題
----
* 例題一:最大連續和([CSES 1643 Maximum Subarray Sum](https://cses.fi/problemset/task/1643))
* 把它轉換為前綴和序列上的問題就變成 [AP325 P-4-12. 一次買賣](https://judge.tcirc.tw/ShowProblem?problemid=d051) 這題了
----
* 例題二:[CF 873B. Balanced Substring](https://codeforces.com/problemset/problem/873/B)
---
## 4. xor 連續和
---
## 5. 二維前綴和
---
## 6. 二維差分
---
## 7. 梯形加總問題
{"metaMigratedAt":"2023-06-17T01:28:28.529Z","metaMigratedFrom":"YAML","title":"連續和相關問題","breaks":true,"slideOptions":"{\"transition\":\"fade\",\"parallaxBackgroundImage\":\"https://i.imgur.com/jtMhsLP.png\",\"parallaxBackgroundHorizontal\":200,\"parallaxBackgroundVertical\":200}","description":"此問題已經在這裡提過了","contributors":"[{\"id\":\"ec58fb73-fce8-4e38-b318-d00e84653449\",\"add\":2315,\"del\":297}]"}