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 #includeusing
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 當然你還可以使用動態規劃,定...