成段更新
(通常這對初學者來說是一道坎
),需要用到延遲標記
(或者說懶惰標記
),簡單來說
就是每次更新的時候不要更新到底
,用延遲標記使得更新延遲到下次需要更新
or 詢問到的
時候#include #include#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
const int maxn=2e5;
int sum[maxn<<2],col[maxn<<2];
void pushup(int rt)
void build(int l,int r,int rt)
int m=(l+r)>>1;
build(lson);
build(rson);
pushup(rt);
}void pushdown(int rt,int len)
}void update(int v,int l,int r,int l,int r,int rt)
pushdown(rt,r-l+1);
int m=(l+r)>>1;
if(m>=l)update(v,l,r,lson);
if(m
HDU 1698 線段樹高階,成段更新
成段更新 通常這對初學者來說是一道坎 需要用到延遲標記 或者說懶惰標記 簡單來說就是每次更新的時候不要更新到底,用延遲標記使得更新延遲到下次需要更新or詢問到的時候 include using namespace std define lson l,m,rt 1 define rson m 1,r,...
HDU 1698 線段樹區間更新
之前一直覺得自己線段樹敲得很熟練,然後。某天。是的,就是我的資料結構周開始的時候我發現。我特麼才會單點更新是怎麼回事!只會區間查詢是腫麼回事!摔!恩。就是表達一下弱渣的心情。區間更新,用到延遲操作。延遲操作應該是這麼回事。線段樹的優越性就是體現在,第一是二分查詢,第二是區間操作。當我們需要多次對區間...
hdu1698線段樹(區間更新)
題目鏈結just a hook 乙個鎖鏈,其組成成部分有三種材料,金銀銅,分數為3 2 1,每次可以更換一段的材料,求最後的分數 鉤子最多長100,000 操作最多有100,000次,肯定不能暴力 線段樹 延遲標記lazy 每個節點新增加乙個標記 lazy 每次要更新節點時,不更新到葉節點,記錄這個...