線段樹 Acwing 1270 數列區間最大值

2021-10-03 06:54:08 字數 1249 閱讀 1604

題目:

輸入一串數字,給你 m 個詢問,每次詢問就給你兩個數字 x,y,要求你說出 x 到 y 這段區間內的最大數。

輸入格式

第一行兩個整數 n,m 表示數字的個數和要詢問的次數;

接下來一行為 n 個數;

接下來 m 行,每行都有兩個整數 x,y。

輸出格式

輸出共 m 行,每行輸出乙個數。

資料範圍

1≤n≤105,

1≤m≤106,

1≤x≤y≤n,

數列中的數字均不超過231−1

輸入樣例:

10 2

3 2 4 5 6 8 1 2 9 7

1 43 8

輸出樣例:58

題解:求子區

間最大值

。線段樹

建樹+查

詢。

求子區間最大值。線段樹建樹+查詢。

求子區間最大

值。線段

樹建樹+

查詢。

**:

#include

#include

#include

#include

#include

#define ll long long

#define inf 0x7fffffff

using

namespace std;

const

int n=

1e5+10;

int n,m;

int w[n]

;struct node

;node tr[n*4]

;void

pushup

(int u)

void

build

(int u,

int l,

int r)

;else

;int mid=l+r>>1;

build

(u<<

1,l,mid)

,build

(u<<1|

1,mid+

1,r)

;pushup

(u);}}

intquery

(int u,

int l,

int r)

intmain()

return0;

}

線段樹 數列操作

假設有一列數 1 i n 支援如下兩種操作 1 將 ak 的值加 d k,d 是輸入的數 2 輸出 as as 1 at s,t 都是輸入的數,s t 根據操作要求進行正確操作並輸出結果。輸入格式 輸入檔案第一行乙個整數n 0 n 100000 第二行為 n 個整數,表示 的初始值。第三行為乙個整數...

數列求和 線段樹基礎

線段樹基礎題 操作包括 1.點修改 2.區間修改 3.區間查詢 線段樹基礎 數列求和 include define maxn 10007 數列總個數 define ls l,m,rt 1 define rs m 1,r,rt 1 1 int sum maxn 2 add maxn 2 sum求和,a...

無聊的數列 線段樹

維護乙個數列,支援兩種操作 1 1 l r k d 給出乙個長度等於r l 1的等差數列,首項為k,公差為d,並將它對應加到a l a r 的每乙個數上。即 令a l a l k,a l 1 a l 1 k d,a l 2 a l 2 k 2d a r a r k r l d。2 2 p 詢問序列的...