這是關於線段樹的某一實際應用。
其中涉及到,線段樹的建立,線段樹的查詢(此題用的是查詢之後的更新),當然正規全面的線段樹還有修改等操作,我僅僅是萬分之一吧。
**一位大佬的部落格 :
本題大意是不斷查詢乙個陣列中一段連續長度的最大值與最小值的差,並輸出。
下面為我的**,比較拙劣。
查詢操作,需要不斷更新nowmax和nowmin的值,這樣記錄下來。
其餘的都是一些小小的細節。
#include#define maxn 1000typedefstruct
lnodelnode;
lnode node[maxn
<<2
];int
a[maxn],n;
int nowmax=-1,nowmin=100007
; using
namespace
std;
int qumax(int a,int
b)int qumin(int a,intb)
void pushup(int
rt)void build(int l,int r,int
rt)
int m=(l+r)>>1
; build(l,m,rt
<<1
); build(m+1,r,rt<<1|1
); pushup(rt);
}void query(int l,int r,int l,int r,int
rt)
int m=(l+r)>>1
;
if(l<=m) query(l,r,l,m,rt<<1
);
if(r>m) query(l,r,m+1,r,rt<<1|1);}
intmain()
build(
1,n1,1
);
for(int i=0;ii)
}return0;
}
線段樹 基礎
d 基礎 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿...
線段樹基礎
寫得不錯啊。前段時間寫了篇 搞懂樹狀陣列 如果說樹狀陣列是優雅的,那麼線段樹就是萬能的。有句話就叫 樹狀陣列能做的線段樹都能做,但是樹狀陣列能做的堅決用樹狀陣列!因為線段樹本來的內容狠豐富的,主要有單點跟新 區間跟新,最值詢問 區間詢問 反正就是對於區間進行的動態跟新詢問都能較高效的完成。對於初學者...
線段樹基礎
平衡二叉樹是完全二叉樹,演算法複雜度為o logn 級別,建樹用二分法找到左右兩個子節點,直到不能繼續劃分節點,線段樹主要用於處理一段連續區間的插入 查詢 統計 查詢等操作,線段樹的執行時間主要是 1 對於任意兩個節點的區間,要麼完全包含,要麼互不相交 線段樹模板 void build int no...