線段樹成段更新裸題POJ3468

2021-06-07 18:38:18 字數 631 閱讀 2188

注意事項:1.記住要清除標記

2.查詢時要下放標記,但沒必要向上更新

#include#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define maxn 111111

#define ll long long

ll sum[maxn<<2];

ll mark[maxn<<2];

int pushup(int rt)

int build(int l,int r,int rt)

int m=(l+r)>>1;

build(lson);

build(rson);

pushup(rt);

}int pushdown(int rt,int m)

}int updata(int l,int r,int c,int l,int r,int rt)

pushdown(rt,r-l+1);

int m=(l+r)>>1;

if(m>=l) updata(l,r,c,lson);

if(m>1;

ll temp=0;

if(m>=l) temp+=query(l,r,lson);

if(m

poj3468 線段樹成段更新模板題

題意 包括兩個操作 1 將 a.b 上的數字加上v 2 查詢區間 a,b 上的和 下面的介紹是下解題思路 首先介紹 lazy tag思想 用乙個變數記錄每乙個線段樹節點的變化值,當這部分線段的一致性被破壞我們就將這個變化值傳遞給子區間,大大增加了線段樹的效率。比如現在需要對 a,b 區間值進行加c操...

POJ 3468 線段樹成段更新

題意就是給了一串行的數.然後不斷的問一段的值或者在一段上每個數加乙個數.輸出每次詢問的值.初看這題感覺就是最一般的線段樹成段更新的應用.但下手後發現很多細節.對於一向很粗心的我調了很久才給調出來.成段更新前一文已經提到過.這裡再通過這一題補充一些很值得注意的地方 1 前乙個題因為只有最後才要輸出一段...

poj 3467 線段樹成段更新

題意 略 分析 可設一另設兩個域sum 和d分別表示該區間的當前和與該區間的每個元素的增量,之後維護線段樹即可!再次感慨 能力 include using namespace std int64 sum1 int a 100005 struct node tree 1000000 void crea...