C語言線段樹 2

2021-07-02 06:02:36 字數 891 閱讀 2503

description

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

這讓很多學生很反感。 

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

input

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

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

output

對於每一次詢問操作,在一行裡面輸出最高成績。

sample input

5 6

1 2 3 4 5

q 1 5

u 3 6

q 3 4

q 4 5

u 2 9

q 1 5

sample output

565

9

**:#include #include #define maxn 200000

using namespace std;

struct node

}tree[maxn*4];

int max(int a,int b)

void creatbtree(int l,int r,int rt)

int main()

{ int i,j,n,m,step,k,l,r;

char ch;

while(scanf("%d%d",&n,&m)!=eof){

creatbtree(1,n,1);

//printf("%d %d %d\n",tree[1].max,tree[1].left,tree[1].right);

for(i=0;i

洛谷3373 線段樹2(線段樹)

rt,就是線段樹的模板,支援區間乘 區間加 區間求和。很有意思的一點是兩個標記的下傳,解決了就行了。然後這道題,作為ahoi,竟然是個裸的模板!可能年份久遠的原因吧。兩個一毛一樣嘛!includeusing namespace std typedef long long ll const ll ma...

模板 線段樹 2

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

模板 線段樹2

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