[線段樹]HDU-1754板子題入門ver
阿新 • • 發佈:2019-04-20
uil 開始 圖片 board alt 分享圖片 繼續 || 新的 HDU-1754
線段樹數組請開到四倍
眾所周知數組開小會導致re tle wa等一系列問題orz
板子就是板子,數組從零開始或是從一開始都沒什麽問題,就是2*root+1還是2*root+2的問題。query(q)裏的範圍不要搞反了,是詢問範圍包括當前節點的範圍。
總之線段樹是入門了(吧
解析board:線段樹是一棵葉子節點為具體數據(1st,2nd,3rd……)其上的節點為所囊括的葉子節點([1,2][3,4]……[1,4][5,8]……)的最值的樹
build(int root,int l,int r) 建立節點root範圍為[l,r],如果是葉子節點(l==r)則當前root點為具體值,否則遞歸建立並取建立節點的最值
q(int root,int ql,int qr,int l,int r) 如果已知範圍(即已查詢到該範圍最值的節點)被包括在ql,qr內,返回當前root值;否則繼續向左/右查詢並取最值
mof(int root,int l,int r,int now,int nw)單點更改 如果已到葉子節點(需要修改的now點),則改為新的nw值(或者加減之類的);否則遞歸左右查找,並更新最值
區間更改有延遲數組或固定兩種,做到題再寫(是啦就是還不會了啦 |||^ Q
Over.
[線段樹]HDU-1754板子題入門ver