1. 程式人生 > >*BZOJ3165: [Heoi2013]Segment

*BZOJ3165: [Heoi2013]Segment

線段 操作 每次 zoj 更新 當前 直線 如果 segment

$n \leq 100000$個點,在$0 \leq x \leq 39989$,$0 \leq y \leq 1e9$的坐標系中,在線進行以下操作:加入一條線段;查詢$x=k$這條直線上最上面的線段是誰。

看範圍知道是線段樹(霧)

區間記錄區間的中點處最靠上的線段,這樣詢問的時候把線段樹走到那個點一路上的最高點取個max即可。加入線段時,線段會被區間定位成$log$個區間,每次修改時,如果和當前區間的線段無交點,那直接把這個區間的信息變成這條線段;否則這個區間記錄中點靠上的線段,然後用另一條線段遞歸到對應區間去更新子區間。修改倆log,詢問一log。

*BZOJ3165: [Heoi2013]Segment