線段樹入門 P2068 統計和

2021-08-01 23:39:11 字數 859 閱讀 1521

題目描述

給定乙個長度為n(n<=100000),初始值都為0的序列,x(x<=10000)次的修改某些位置上的數字,每次加上乙個數,然後提出y (y<=10000)個問題,求每段區間的和。時間限制1秒。

輸入輸出格式

輸入格式:

第一行1個數,表示序列的長度n

第二行1個數,表示操作的次數w

後面依次是w行,分別表示加入和詢問操作

其中,加入用x表示,詢問用y表示

x的格式為」x a b」 表示在序列a的位置加上b

y的格式為」y a b」 表示詢問a到b區間的加和

輸出格式:

每行乙個數,分別是每次詢問的結果

輸入輸出樣例

輸入樣例#1:

5 4

x 3 8

y 1 3

x 4 9

y 3 4

輸出樣例#1:

8 17

#include

#include

#include

using

namespace

std;

int tag[1000000];

void ss(int l,int r,int x,int y,int t,int &sum)

int mid=(l+r)/2;

ss(l,mid,max(l,x),min(y,mid),t*2,sum);

ss(mid+1,r,max(mid+1,x),y,t*2+1,sum);

}void change(int l,int r,int v,int x,int t)

int main()

}}

洛谷P2068 統計和

給定乙個長度為 n n leq 100000 初始值都為 0 的序列,x x leq 10000 次的修改某些位置上的數字,每次加上乙個數,然後提出 y y leq 10000 個問題,求每段區間的和。時間限制 1 秒。輸入格式 第一行 1 個數,表示序列的長度 n 第二行 1 個數,表示操作的次數...

洛谷P2068 統計和題解

給定乙個長度為n n 100000 初始值都為0的序列,x x 10000 次的修改某些位置上的數字,每次加上乙個數,然後提出y y 10000 個問題,求每段區間的和。時間限制1秒。第一行1個數,表示序列的長度n 第二行1個數,表示操作的次數w 後面依次是w行,分別表示加入和詢問操作 其中,加入用...

線段樹入門詳解,洛谷P3372 模板 線段樹 1

關於線段樹 本隨筆參考例題 p3372 模板 線段樹 1 所謂線段樹就是把一串陣列拆分成乙個乙個線段形成的一棵樹。比如說像這樣的乙個陣列1,2,3,4,5 1 5 1 3 4 5 1 2 345 1 2 如圖所示,這就類似於線段樹。線段樹之所以稱之為樹是因為他分解出來的樣子類似於樹,如上圖所示。1....