I Hate It 線段樹查詢最大值

2021-10-12 16:16:53 字數 1378 閱讀 9492

題目鏈結

很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。

這讓很多學生很反感。

不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。

本題目包含多組測試,請處理到檔案結束。

在每個測試的第一行,有兩個正整數 n 和 m ( 0對於每一次詢問操作,在一行裡面輸出最高成績。

5 61 2 3 4 5

q 1 5

u 3 6

q 3 4

q 4 5

u 2 9

q 1 556

59

#include

#include

#include

#include

#include

using

namespace std;

const

int maxn=

2e5+5;

struct node

tr[maxn<

<2]

;int w[maxn]

;voidup(

int u)

void

build

(int u,

int l,

int r)

int mid=

(l+r)

>

>1;

build

(u<

<

1,l,mid)

;build

(u<

<1|

1,mid+

1,r);up

(u);

}void

updata

(int u,

int pos,

int val)

//路徑是遞迴過程先走到底更新,然後在返回來更新

int mid=

(tr[u]

.l+tr[u]

.r)>

>1;

if(pos<=mid)

//更新位置小於mid就說明在左孩子上

updata

(u<

<

1,pos,val)

;else

//更新位置大於mid就說明在右孩子上

updata

(u<

<1|

1,pos,val);up

(u);

//最後更新最大值

}int

quary

(int u,

int l,

int r)

intmain()

else}}

return0;

}

I Hate It(線段樹的區間最大值)

很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。這讓很多學生很反感。不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。input 本題目包含多組測試,請處理到檔案結束。在每個測試的第一行,有兩個...

I Hate It(線段樹維護區間最大值)

題意 給定乙個原始陣列,有2種操作,第一種操作是單點修改id為a的學生的成績改為b,第二種操作是詢問區間a到b中分值最大的一位。思路 用線段樹維護區間最大值,每次修改之後不斷向上更新區間最大值即可。include using namespace std typedef long long ll co...

HDU1754 I hate it 線段樹 最大值

description 很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。這讓很多學生很反感。不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。input 本題目包含多組測試,請處理到檔案結束。在...