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...