資料結構 線段樹 I Hate It

2022-04-04 22:30:35 字數 1162 閱讀 7748

problem description

很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。

這讓很多學生很反感。

不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。

input

本題目包含多組測試,請處理到檔案結束。

在每個測試的第一行,有兩個正整數 n 和 m ( 0

output

對於每一次詢問操作,在一行裡面輸出最高成績。

sample input

5 61 2 3 4 5

q 1 5

u 3 6

q 3 4

q 4 5

u 2 9

q 1 5

sample output56

59hint

huge input,the c function scanf() will work better than cin

思路:線段樹裸題

ac**:

#include #include

using

namespace

std;

int a[200010

];int mx[200010*4

];void pushup(int

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

rt)

int mid=(l+r)>>1

; build(l,mid,rt

<<1

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

); pushup(rt);

}void update(int pos,int val,int l,int r,int

rt)

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

if(pos<=mid) update(pos,val,l,mid,rt<<1

);

else update(pos,val,mid+1,r,rt<<1|1

); pushup(rt);

}int query(int l,int r,int l,int r,int

rt)int

main()

}return0;

}

資料結構 線段樹

啦啦啦啦啦啦線段樹是個好東西 好吧並沒有什麼好的 但貌似還是很好啊 線段樹就是一棵樹!顧名思義 又是這個詞 就是求關於一段的某些什麼什麼東西。比如區間最大值啊什麼的。引用百科知識 線段樹是一種二叉搜尋樹,與區間樹相似,它將乙個區間劃分成一些單元區間,每個單元區間對應線段樹中的乙個葉結點。對於線段樹中...

資料結構 線段樹

一 目標 1.如何快速的查詢出下列陣列arr 2,5 的和 2。以及更新arr 4 為6。用普通的方法查詢的複雜度為o n 更新的複雜度為o 1 這時候我們可以用線段樹來快速完成這些操作,複雜度為logn。二 內容 如何建立,查詢,更新線段樹。public class qurqpd int tree...

資料結構 線段樹

線段樹是一顆平衡的二叉搜尋樹,他以空間換區時間,讓線性查詢加速log級別的查詢,用到的演算法主要是二分搜尋和遞迴。例如 有陣列data 我有乙個需求,我需要頻繁的查詢區間i j的sum和。這裡先給出兩個解決方案 如果使用最普通的演算法遍歷,那麼查詢和更新的複雜度為o n 當然你還可以使用動態規劃,定...