[置顶] ⑨的线段树专题
单点更新
最最基础的线段树,只更新叶子节点,然后把信息用PushUP(int r)这个函数更新上来。
线段树 hdu 1754 I Hate It 单点更新 区间求最值
hdu1394 Minimum Inversion Number
hdu 1394 Minimum Inversion Number 线段树 逆序数
UVa 12299 - RMQ with Shifts 线段树 单点更新
poj2886 Who Getsthe Most Candies?
CodeforcesBeta Round #19 D. Points
CodeforcesBeta Round #99 (Div. 1) C Mushroom Gnomes - 2
成段更新
需要用到延迟标记(或者说懒惰标记),简单来说就是每次更新的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新or询问到的时候。
poj3468 A Simple Problem with Integers
线段树 poj 3468 A Simple Problem with Integers 区间add更新
Poj 2528 Mayor's posters 线段树 离散化 成段更新
poj1436 Horizontally Visible Segments
poj2991 Crane
UVa
11992 - Fast Matrix Operations 成段更新,求最值与和
CodeforcesRound #136 (Div. 2) D. Little Elephant andArray
CodeforcesRound #169 (Div. 2) E.Little Girl and Problemon Trees
CodeforcesBeta Round #35 (Div. 2) E. Parade
区间合并
这类题目会询问区间中满足条件的连续最长区间,所以PushUp 的时候需要对左右儿子的区间进行合并。
hdu3308 LCIS
hdu3397 Sequence operation
hdu2871 Memory Control
hdu1540 Tunnel Warfare
CF46-D Parking Lot
扫描线
这类题目需要将一些操作排序,然后从左到右用一根扫描线扫过去,最典型的就是矩形面积并、周长并等题。
hdu3265 Posters
hdu3642 Get The Treasury
poj2482 Stars in Your Window
poj2464 Brownie Points II
hdu3255 Farming
ural1707 Hypnotoad’s Secret
uva11983 Weird Advertisement
多颗线段树问题
此类题目主用特点是区间不连续,有一定规律间隔,用多棵树表示不同的偏移区间hdu 4267 A simple problem with integers
其他
- hdu3954 Level up
- hdu4027 Can you answer these queries?
- hdu3333 Turing Tree
- hdu3874 Necklace
- hdu3016 Man Down
- hdu3340 Rain in ACStar
- zju3511 Cake Robbery
- UESTC1558 Charitable Exchange
- CF85-D Sum of Medians
- spojGSS2 Can you answer these queries II
CodeforcesRound #163 (Div. 2) E. More Queries
toArray...