nyoj 1185 線段樹區間最大最小值

2021-08-08 16:19:44 字數 1066 閱讀 5903

最大最小值

時間限制:1000 ms | 記憶體限制:65535 kb

難度:2

描述 給出n個整數,執行m次詢問。

對於每次詢問,首先輸入三個整數c、l、r:

如果c等於1,輸出第l個數到第r個數之間的最小值;

如果c等於2,輸出第l個數到第r個數之間的最大值;

如果c等於3,輸出第l個數到第r個數之間的最小值與最大值的和。

(包括第l個數和第r個數)。

輸入 首先輸入乙個整數t(t≤100),表示有t組資料。

對於每組資料,先輸入乙個整數n(1≤n≤10000),表示有n個整數;

接下來一行有n個整數a(1≤a≤10000);

然後輸入乙個整數m,表示有m次詢問;

接下來有m行(1≤m≤10000),每行有3個整數c、l、r(1≤c≤3,1≤l≤r≤n)。

輸出 按照題意描述輸出。每個輸出佔一行。

樣例輸入

2 4

1 3 2 4

2 1 1 4

2 2 3

5 1 2 3 4 5

1 3 1 5

樣例輸出

1 3

6線段樹區間最大最小值模板。快省賽,只好日後再來研究了

#includeint a[10010];

struct node

num[100010];

int min(int a,int b)

int buildmin(int

left,int

right,int cnt)

int buildmax(int

left,int

right,int cnt)

int querymin(int

left,int

right,int cnt)

int querymax(int

left,int

right,int cnt)

int main()

}return 0;

}

nyoj 最大最小值 1185 線段樹

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 給出n個整數,執行m次詢問。對於每次詢問,首先輸入三個整數c l r 如果c等於1,輸出第l個數到第r個數之間的最小值 如果c等於2,輸出第l個數到第r個數之間的最大值 如果c等於3,輸出第l個數到第r個數之間的最小值與最大值的...

線段樹 區間加乘區間最大

如題,已知乙個數列,你需要進行下面兩種操作 1.將某區間每乙個數加上x 2.將某區間每乙個數乘上x 3.求出某區間每乙個數的和 第一行包含三個整數n m p,分別表示該數列數字的個數 操作的總個數和模數。第二行包含n個用空格分隔的整數,其中第i個數字表示數列第i項的初始值。接下來m行每行包含3或4個...

hdu I hate it 區間最大值 線段樹

include define maxn 200001 define lson l,mid,rt 1 define rson mid 1,r,rt 1 1 int max maxn 2 int n,m int max int a,int b void pushup int rt 要理解好更新的定義,不...