线段树
Lucius-THU
If you miss the train I'm on
展开
-
BZOJ 1798, 维护序列
维护一个数列,要求支持区间加、区间乘以及查询操作。很裸的线段树,难点在于加法和乘法的操作顺序。 标记下传时应先打乘法标记,再打加法标记,同时更新时还要用乘法标记维护加法标记。原创 2017-02-09 10:53:44 · 305 阅读 · 0 评论 -
BZOJ 3110, K大数查询
要求维护一个数列,支持在某部分的每个位置填上一个数以及查询某部分第K大的数字。终于学习了一下树套树的姿势……其实和自己想的也差不多……但是不学还是打不出代码来…… 外层是权值线段树,内层是区间线段树。 要注意的细节比较多。二分查询过程中结果可能超过 Maxlongint ,需要用 unsigned int 类型传递;权值可以翻转后整体右移等等。原创 2017-02-07 20:05:40 · 200 阅读 · 0 评论 -
BZOJ 2243, 染色
要求编写一个数据结构,维护一颗无根树各节点的颜色以支持查询两点间的路径上颜色段的数量。 树链剖分+线段树。 线段树各节点保存区间左端点、右端点的颜色,区间内颜色段数量,以及线段树set操作标记。 合并区间时要注意处理两段点颜色相同的情况。原创 2017-01-20 13:43:55 · 277 阅读 · 0 评论