題目描述
給定n個數列,規定有兩種操作,一是修改某個元素,二是求子數列[a,b]的連續和。數列的元素個數最多10萬個,詢問操作最多10萬次。
輸入第一行2個整數n,m(n表示輸入n個數列,m表示有m個操作)
第二行輸入n個數列。
接下來m行,每更好行有三個數k,a,b(k=0表示求子數列[a,b]的和,k=1表示第a個數列加b)
輸出輸出若干行數字,表示每次k=0時對應輸出乙個子數列[a,b]的連續和。
樣例輸入
10 5
1 2 3 4 5 6 7 8 9 10
1 1 5
0 1 3
0 4 8
1 7 5
0 4 8
樣例輸出
1130
35思路:建立乙個樹狀陣列進行求解。樹狀陣列板子題
**:
#include#define ll long long
using namespace std;
ll a[100005],c[100005],n,k;
ll lowbit(ll x)//
void update(int i, ll k)//在a[i]上加k
}ll sum(int i)//取得1到i的字首和
return ans;
}int main()
for(int i = 1; i <= k; i++)
return 0;
}
COGS 數列操作a,b,c 樹狀陣列練習
cogs 264.數列操作 問題描述 假設有一列數 1 i n 支援如下兩種操作 1 將 a k 的值加 d k,d 是輸入的數 2 輸出 a s a s 1 a t s,t 都是輸入的數,s t 根據操作要求進行正確操作並輸出結果。輸入格式 輸入檔案第一行乙個整數 n 0 n 100000 第二行...
樹狀陣列操作
題意 序列 n 1e6 有 m n 個詢問,求 l 到 r 中有幾個不相同的數。題解 如果 n 的範圍為 1e5 就是莫隊裸題,但是由於 n 的範圍為 1e6 那麼就是可用樹狀陣列操作,具體就是可發現,只有最後出現的數字有價值,設 r 指標從左到右,如果出現了乙個數之前沒出現過,在樹狀陣列裡此位置 ...
HAOI2004 數列 樹狀陣列
乙個簡單的數列問題 給定乙個長度為n的數列,求這樣的三個元素ai,aj,ak的個數,滿足ai aj ak,且i j k。第一行是乙個整數n n 50000 第二行n個整數ai 0 ai 50000 乙個數,滿足ai aj ak i j k 的個數。5 1 2 3 4 1 用樹狀陣列求出二元組以及逆序...