HDU 1754 線段樹單點更新

2021-08-25 11:58:42 字數 1180 閱讀 5417

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

這讓很多學生很反感。 

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

input

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

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

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

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#includeusing namespace std;

const int maxn = 200005;

int a[maxn];

#define ls o<<1

#define rs o<<1|1

struct stude[maxn<<2];//要是四倍才能存下樹

inline void pushup(int o)

void build(int l,int r,int o)//建樹

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

build(l,mid,ls);

build(mid+1,r,rs);

pushup(o);

}void update(int s,int o,int val)//更新

int mid = (de[o].l + de[o].r) >> 1;

if(s <= mid) update(s,ls,val);//此處有多種寫法

else update(s,rs,val);

pushup(o);

}int query(int l,int r,int o)//求值

int main()

else

} }return 0;

}

hdu 1754 單點更新

題意 很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。這讓很多學生很反感。不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。5 6 1 2 3 4 5 q 1 5 u 3 6 q 3 4 q 4...

HDU1754 《線段樹建立,查詢,更新》

the reason of failure 1 又一次被cin的速度坑了!注意大資料要用scanf的輸入方法啊。learning 1 線段樹是用來幹嘛的,是可以找區間最大最小值或者和之類的值的。thinking 每次這個線段的max1取max max1,weight 也就是判斷改變的這個值,是否大於...

hdu 1754 基礎線段樹

題目鏈結 思路 比較簡單的線段樹,區間求最值,單點更新。讀入字元的時候,最好用字元陣列儲存,使用 s讀入,如果使用 c 會t 好像是會吃掉換行符。include include include define maxn 2000005 using namespace std int stu maxn ...