poj 3264 線段樹區間最大最小值

2021-07-04 10:09:35 字數 1075 閱讀 3582

題意:

給n組資料,q個詢問,每次詢問區間l,r最大值與最小值的差是多少。

解析:睡前一水,卻錯了2發。

詢問的時候寫錯了,並不是直接去更新maxx-minn的最大值。。。

是直接更新maxx,minn,然後最後一減就行了。

**:

#include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long

#define lson lo, mi, rt << 1

#define rson mi + 1, hi, rt << 1 | 1

using namespace std;

const int maxn = 50000 + 10;

const int inf = 0x3f3f3f3f;

const double eps = 1e-8;

const double pi = acos(-1.0);

const double ee = exp(1.0);

int minn, maxx;

int maxpoint[maxn << 2];

int minpoint[maxn << 2];

void pushup(int rt)

void build(int lo, int hi, int rt)

int mi = (lo + hi) >> 1;

build(lson);

build(rson);

pushup(rt);

}void query(int l, int h, int lo, int hi, int rt)

int mi = (lo + hi) >> 1;

if (l <= mi)

query(l, h, lson);

if (mi < h)

query(l, h, rson);

}int main()

}return 0;

}

RMQ 求區間最值(poj 3264)

1.概述 rmq range minimum maximum query 即區間最值查詢,是指這樣乙個問題 對於長度為n的數列a,回答若干詢問rmq a,i,j i,j n 返回數列a中下標在i,j之間的最小 大值。這兩個問題是在實際應用中經常遇到的問題,下面介紹一下解決這兩種問題的比較高效的演算法...

滑動視窗(poj,線段樹維護區間最值)

現在有一堆數字共n個數字 n 10 6 以及乙個大小為k的視窗。現在這個從左邊開始向右滑動,每次滑動乙個單位,求出每次滑動後視窗中的最大值和最小值。例如 the array is 1 3 1 3 5 3 6 7 and k 3.輸入格式 輸入一共有兩行,第一行為n,k。第二行為n個數 輸出格式 輸出...

線段樹,區間最值

codeforces 91b queue 線段樹,區間最值 題意是,對於給定區間內的每個元素,要求求出離他最遠的那個元素之間的距離。可以維護乙個線段樹的最小值,每次對於乙個元素,查詢其最右邊的元素的位置。include include include includeusing namespace s...