線段樹入門 更新單個節點)

2022-08-24 01:39:10 字數 1279 閱讀 6638

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

hint

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

線段樹入門題,更新單節點。更新單源點的話,直接找到要更新的點,然後再把更新點上面的節點更新就可以了。詢問操作的話就是二分操作。。。

線段樹入門題,水題。。。看**吧。

ac**:

#include#include

int max(int x,int

y)int a[1000010

];struct

note

tree[

4000040

];void built(int left,int right,int

pos)

built(left,mid,pos

<<1

); built(mid+1,right,pos<<1|1);//

兩步操作把樹建完整

tree[pos].maxx=max(tree[pos<<1].maxx,tree[pos<<1|1].maxx);//

找出左右孩子的大值

}void update(int pos,int x,int

y) }

else

return;}

intmaxx;

int query(int pos,int x,int

y)

if(x>tree[pos].r||yreturn

0;//

判斷是否越界

else

if(x>mid)query(pos<<1|1,x,y);//

這部和以下兩步都是為了找到那個符合的區間

else

if(y<=mid)query(pos<<1

,x,y);

else

return0;

}int

main()

if(c=='q'

)

getchar();}}

return0;

}

風咋起,合當奮意向人生!

hdu 2795 線段樹更新單個節點

題意 給你乙個高位h寬為w的木板,現在給你一些通知條高度為1,寬度為wi,現在要盡可能的將每乙個通知條往木板的最上層放,並盡量向當前層的左邊放 從最高層到最低層的按1 min h,n 開始編號 對於每輸入的乙個紙條輸出其可以擺放的最高層次,若該紙條不能被放,那麼輸出 1 分析 由於h和w均為10 9...

線段樹入門

線段樹 interval tree 是把區間逐次二分得到的一樹狀結構,它反映了包括歸併排序在內的很多分治演算法的問題求解方式。上圖是一棵典型的線段樹,它對區間 1,10 進行分割,直到單個點。這棵樹的特點 是 1.每一層都是區間 a,b 的乙個劃分,記 l b a 2.一共有log2l層 3.給定乙...

線段樹入門

學習下 線段樹的入門級 總結 線段樹是一種二叉搜尋樹,與區間樹相似,它將乙個區間劃分成一些單元區間,每個單元區間對應線段樹中的乙個葉結點。對於線段樹中的每乙個非葉子節點 a,b 它的左兒子表示的區間為 a,a b 2 右兒子表示的區間為 a b 2 1,b 因此線段樹是平衡二叉樹,最後的子節點數目為...