這道題是線段樹簡單的入門題,只是簡單考察了線段樹的基本使用,建樹等操作。
這裡需要注意的是輸入要不使用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...