線段樹,求和,最值,資料更新

2021-08-06 03:24:05 字數 647 閱讀 5123

位運算要比加減預算速度快

#include#includeusing namespace std;

struct nodetree[1000<<2];//開的空間至少要4倍.左移兩位就是4倍

void pushup(int o)

void buidtree(int o,int l,int r) //建樹

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

buidtree(o*2,l,mid); //遞迴找左子樹

buidtree(o*2+1,mid+1,r); //遞迴找右子樹

pushup(o);

}void update(int o,int l,int r,int x,int y) //資料更新,將底層x節點值變為y

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

if(x<=mid)

update(o*2,l,mid,x,y);

else

update(o*2+1,mid+1,r,x,y);

pushup(o);

}int querysum(int o,int l,int r,int x,int y) //x到y的和

int main()

return 0;

}

線段樹(區間更新求和)

poj 3468 include using namespace std define max 100100 struct node 求區間長度 int get dis node tree max 3 long long d max 建樹 long long build int left,int r...

線段樹單點更新 求和

第一行乙個整數t,表示有t組資料。每組資料第一行乙個正整數n n 50000 表示敵人有n個工兵營地,接下來有n個正整數,第i個正整數ai代表第i個工兵營地里開始時有ai個人 1 ai 50 接下來每行有一條命令,命令有4種形式 1 add i j,i和j為正整數,表示第i個營地增加j個人 j不超過...

I Hate It (線段樹單點更新,求最值)

problem description 很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。這讓很多學生很反感。不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。input 本題目包含多組測試,請處...