HDOJ 1754 線段樹 單點更新

2022-06-09 10:09:11 字數 1064 閱讀 1247

這道題是線段樹簡單的入門題,只是簡單考察了線段樹的基本使用,建樹等操作。

這裡需要注意的是輸入要不使用scanf要不使用快速輸入。

這裡的maxs陣列需要開大一點,4倍是最穩妥的,一定不會溢位。

區間查詢的時候要注意if後不是之間使用else應該分開寫,因為兩個區間可能是相交的。

//單點更新,單點查詢

#include#include#include#include#include#include#includeusing namespace std;

const int maxn=200005;

const int inf=0x3f3f3f3f;

int n,m;

int maxs[maxn<<2];

int a[maxn];

void pushup(int id,int l,int r)

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

int lc=id<<1;

int rc=id<<1|1;

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

build(lc,l,mid);

build(rc,mid+1,r);

pushup(id,l,r);//向上維護

}void update(int id,int l,int r,int p,int v)

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

int lc=id<<1;

int rc=id<<1|1;

if(p<=mid)else

pushup(id,l,r);

}int query(int id,int l,int r,int p,int q)

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

if(p<=mid)

if(q>mid)

return maxss;

}int main()

build(1,1,n);

for(int i=0;i>c>>a1>>b1;

if(c=='u')else}}

return 0;

}

線段樹 點修改 hdoj 1754

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

HDU 1754 線段樹單點更新

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

線段樹單點更新

hdu 1166 單點更新,求區間和 第一次寫線段樹,照著大神的抄了一遍 include include include define max 50100 define mid l r 1 define lson l,m,rt 1 define rson m 1,r,rt 1 1 using nam...