寒假 HDU 1754(線段樹)

2021-09-10 09:14:01 字數 1295 閱讀 5482

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

這讓很多學生很反感。

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

input

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

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

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

一道簡單的線段樹模板題,詳細在注釋說。

#includeusing namespace std;

const int max = 200005*4;

int s[max];

int max(int a, int b)

void pushup(int root)

void build(int root, int left, int right)//建樹

int mid = (left + right) / 2;

build(root * 2, left, mid);//左孩子

build(root * 2 + 1, mid + 1, right);//右孩子

pushup(root);

}void update(int root, int place, int change, int left, int right)//單點更新

int mid = (left + right) / 2;

if (place <= mid)

update(root * 2, place, change, left, mid);

else

update(root * 2 + 1, place, change, mid + 1, right);

pushup(root);

}int ask(int root,int x,int y, int left, int right)

int mid = (left + right) / 2;

int r = 0;

if (y > mid)r=max(r,ask(root * 2 + 1,x,y,mid+1,right));

if (x <= mid)r=max(r,ask(root * 2,x,y,left,mid));

return r;

}int main()

else printf("%d\n", ask(1, t1, t2, 1, n));

} }}

hdu 1754 基礎線段樹

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

線段樹入門 hdu1754

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

HDU 1754 簡單線段樹

題意如下 給你從1到n 每個學生的成績。有m個操作,操作分為兩種,一種是查詢q x y 查詢從x學生到y學生的最高分數 另一種就是u x y 將學生x的成績改為y 一道明顯的線段樹題目 過程也是比較明確,建樹 查詢最大值 更新樹.附上 include include include define m...