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

2021-09-25 22:27:44 字數 1093 閱讀 7194

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

這讓很多學生很反感。

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

input

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

在每個測試的第一行,有兩個正整數 n 和 m ( 0hint

huge input,the c function scanf() will work better than cin

剛開始不懂,套的模板是區間和的,後來看了看題解,是求區間最大值的,哎,還是不能盲目直接套模板啊,需要靈活運用。不過,又了解到了區間最大值的模板,嘿嘿.

**:

#include#inlude#includeusing namespace std;

const int maxn=200005;

int s[maxn], sum[maxn*4];

void pushup(int node)

void build(int node,int l,int r)

int mid=(l+r)>>1;

build(node*2,l,mid);

build(node*2+1,mid+1,r);

pushup(node);

} void update(int k,int add,int node,int l,int r)

int mid=(l+r)>>1;

if(k<=mid)

else

pushup(node);

} int query(int a,int b,int node,int l,int r)

int mid=(l+r)>>1;

int ret=0;

if(a<=mid) ret=max(ret,query(a,b,node*2,l,mid));

if(b>mid) ret=max(ret,query(a,b,node*2+1,mid+1,r));

return ret;

} int main()

}return 0;

}

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

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

I Hate It 線段樹查詢最大值

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

I Hate It 線段樹單點更新區間查詢

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