Balanced Lineup(區間最值差)

2021-10-03 16:57:10 字數 1098 閱讀 6612

poj 3264

題意:給定序列,求區間 [x,y] 最大值和最小值的差

標籤:區間最值

分析:線段樹維護區間最大最小值,分開查詢。

還是老問題,poj流同步關了還是t

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

#define pi acos(-1)

using

namespace std;

typedef

long

long ll;

typedef pair p;

const

int mod=

1e9+7;

const

int maxn=

5e4+10;

struct node tree[maxn<<2]

;int n,m;

int a[maxn]

;void

push_up

(int p)

void

build

(int p,

int l,

int r)

int m=

(l+r)

>>1;

build

(p<<

1,l,m)

,build

((p<<1)

|1,m+1

,r);

push_up

(p);

}int

querymin

(int p,

int x,

int y)

intquerymax

(int p,

int x,

int y)

intmain()

return0;

}

堆區 棧區 靜態區 常量區還有???

常見的儲存區域可分為 由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,程式會一直占用記憶體,導致記憶體洩漏...

c 棧區 堆區 常量區

c 中棧區 堆區 常量區 由一道面試題目而學習 2009 04 28 21 01 include void main 對應的彙編 10 a c 1 00401067 8a 4d f1 mov cl,byte ptr ebp 0fh 0040106a 88 4d fc mov byte ptr ebp...

記憶體的使用 棧區 堆區 靜態區 唯讀區

記憶體的使用感覺好亂啊,需要整理一下!於是參考c primer與網上資源,整理如下 一 綜述 記憶體中的棧區分配的是區域性變數和函式的引數值的空間,棧的生長方向是從高往低的 堆區是向上增長的用於分配程式設計師申請的記憶體空間 比如new 申請的動態記憶體 注意它與資料結構中的堆是兩回事,分配方式倒是...