初入線段樹

2021-08-22 15:02:20 字數 968 閱讀 1120

1.作用:線段樹適用於解決規定區間的查詢,修改,統計等操作,例如:求陣列下標為1-10000的所有數字的和,那麼普通方法為遍歷所有的1-10000的數字,然後進行求和,那麼若資料量很大,這種方法將會十分的消耗時間,而線段樹則可以利用區間之間的相加來求和,將會大大的節約時間。

2.線段樹大概由四個板塊組成,1.pushup(計算當前節點的值)2.build(用u建樹)3.update(用於更新資料) 4.query(用於查詢)

3.接下來編寫四個板塊,並進行解釋

3.1 pushup

void pushup(int rt)

3.2build

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

int m=(l+r)/2;

build(l.m,rt<<1);

build(m+1,r,rt<<1|1);

pushup(rt);

}

3.3 update

void update(int c,int l,int l,int r,int rt)//c和l表示的是在a[l]中加c 

int m=(l+r)/2;

if(l<=m)

else

pushup(rt);

}

3.4 query

int query(int l,int r,int l,int r,int rt)//l r表示的是需要查詢的節點,l r是正在操作的節點(初始值為1-n) 

int m=(l+r)/2;

int ans=0;

if(l<=m)//判斷是否還需要向左邊遞迴(左邊是否還有所求的區間的下標)

if(r>m)//判斷是否還需要向左邊遞迴(右邊是否還有所求的區間的下標)

return ans;

}

初入藍色之路

剛進入公司的前兩天基本沒有事情做,大家只是圍坐在一起,互相了解,聊聊天,還有乙個上一屆的實習生,叫王法,這個名字挺有意思的,不知道還以為是個律師。這個人雖然只是個本科生,年齡也沒有我大,不過給人的感覺挺成熟的,在公司裡已經游刃有餘了。他給我們講了許多公司的事,有了這麼乙個和我們年齡相仿,交流沒有任何...

初入linux安裝

virtual box vmware plyer,ubantu kylin 1.使用vitrual box安裝老顯示錯誤,無語 2.使用vmwareplayer安裝後ok了,進入介面輸入賬號密碼進不去,網上查資料,然後就輸入startx才進去了!使用vmware 安裝 安裝後無法wifi上網 1.配...

GitHub 初入江湖

常見問題 github註冊 登陸 建立自己的repositories 複製專案的位址,備用 clone or download 單擊之後顯示 位址 開啟本地專案工程檔案 右擊,先擇git bash here 輸入 git clone git clone cloning into yijiazheng...