題目描述 description
一行n個方格,開始每個格仔裡都有乙個整數。現在動態地提出一些問題和修改:提問的形式是求某乙個特定的子區間[a,b]中所有元素的和;修改的規則是指定某乙個格仔x,加上或者減去乙個特定的值a。現在要求你能對每個提問作出正確的回答。1≤n<100000,,提問和修改的總數m<10000條。
輸入描述 input description
輸入檔案第一行為乙個整數n,接下來是n行n個整數,表示格仔中原來的整數。接下乙個正整數m,再接下來有m行,表示m個詢問,第乙個整數表示詢問代號,詢問代號1表示增加,後面的兩個數x和a表示給位置x上的數值增加a,詢問代號2表示區間求和,後面兩個整數表示a和b,表示要求[a,b]之間的區間和。
輸出描述 output description
共m行,每個整數
樣例輸入 sample input
6 4
5 6
2 1
3 4
1 3 5
2 1 4
1 1 9
2 2 6
樣例輸出 sample output
22 22
資料範圍及提示 data size & hint
1≤n≤100000, m≤10000 。
#include
#include
using
namespace
std;
#define n 100005
int n,m;int a[n],c[n];
inline
int lowbit(int x)
inline
int sum(int x)
return ret;
}inline
void add(int x,int d)
}int main()
scanf("%d",&m);int u,v,r,s1,s2;
while(m--)
}}
1080 線段樹練習
一行n個方格,開始每個格仔裡都有乙個整數。現在動態地提出一些問題和修改 提問的形式是求某乙個特定的子區間 a,b 中所有元素的和 修改的規則是指定某乙個格仔x,加上或者減去乙個特定的值a。現在要求你能對每個提問作出正確的回答。1 n 100000,提問和修改的總數m 10000條。輸入描述 inpu...
1080 線段樹練習
時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond description 一行n個方格,開始每個格仔裡都有乙個整數。現在動態地提出一些問題和修改 提問的形式是求某乙個特定的子區間 a,b 中所有元素的和 修改的規則是指定某乙個格仔x,加上或者減去乙個特定的值a。現在要求...
Codevs P1082 線段樹練習3 線段樹
題目描述 description 給你n個數,有兩種操作 1 給區間 a,b 的所有數增加x 2 詢問區間 a,b 的數的和。輸入描述 input description 第一行乙個正整數n,接下來n行n個整數,再接下來乙個正整數q,每行表示操作的個數,如果第乙個數是1,後接3個正整數,表示在區間 ...