description
一行n個方格,開始每個格仔裡的數都是0。現在動態地提出一些問題和修改:提問的形式是求某乙個特定的子區間[a,b]中所有元素的和;修改的規則是指定某乙個格仔x,加上或者減去乙個特定的值a。現在要求你能對每個提問作出正確的回答。1≤n≤100000,提問和修改的總數可能達到100000條。
input
20 //方格個數
6 //有幾組操作
m 1 1 //表示修改,第乙個表示格仔位置,第二個數表示在原來的基礎上加上的數,
m 2 2
m 3 4
m 3 -5
m 6 7
c 2 6 //表示統計 ,第乙個數表示起始位置,第二個數表示結束位置
output
8 做法:維護乙個區間sum。。其實也是模板題
**如下:
#include
#include
#include
using namespace std;
int c[1000000],n,m;
char s;
void update(int p,int l,int r,int
x,int add)
if (x
<=m) update(p*2,l,m,x,add);
if (x>m) update(p*2+1,m+1,r,x,add);
c[p]=c[p<<1]+c[p<<1|1];
}int find(int p,int l,int r,int a,int b)
}int main()
if (s=='c')
}}
線段樹 線段樹練習五
description 一行n個方格,開始每個格仔裡的數都是0。現在動態地提出一些問題和修改 提問的形式是求某乙個特定的子區間 a,b 中所有元素的和 修改的規則是指定某乙個格仔x,加上或者減去乙個特定的值a。現在要求你能對每個提問作出正確的回答。1 n 100000,提問和修改的總數可能達到100...
線段樹 SSL 2648 線段樹練習題五
給出幾個剛開始為0的格仔,我們可以進行兩種操作 1 修改 m x y 給格仔x加上y 2 查詢 c x y 格仔x到格仔y上的數的總和 線段樹。用cover表示當前這個區間裡的格仔的總和,每次修改的時候我們查詢到代表它那個範圍的節點,然後遞迴回它的根節累加,查詢就是查到了代表x到y的那個區間就返回c...
SSLGZ 2648 線段樹練習五
問題描述 一行n個方格,開始每個格仔裡的數都是0。現在動態地提出一些問題和修改 提問的形式是求某乙個特定的子區間 a,b 中所有元素的和 修改的規則是指定某乙個格仔x,加上或者減去乙個特定的值a。現在要求你能對每個提問作出正確的回答。1 n 100000,提問和修改的總數可能達到100000條。樣例...