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