
线段树
线段树的一些入门题和一些常用思路
ailanxier
Hitsz 笔记 https://github.com/ailanxier
展开
-
树状数组查询离散化
更好的观看体验一些概念在线操作:每读入一个操作方式,就进行一次修改或者输出结果。离线操作:将所有操作先全部读入存起来,进行处理后再进行修改或者输出结果。 我们很多时候,对线段树或者树状数组都是进行在线操作的,边读入操作边修改。但是用树状数组来解决一些题目时,得依赖离线操作来限制在树状数组内信息的范围。不理解这句话不要紧,这里有两道很好的例题可以用离线操作解决。题目一:换个角度思考NC19427 换个角度思考题意简述 题目给出一个长为 nnn 的序列(均小于 10510^510.原创 2020-08-06 22:15:15 · 266 阅读 · 0 评论 -
线段树合并+模拟大题
简述难点 这种题极其友(e)好(xin),基本上就是 pushuppushuppushup,buildbuildbuild,pushdownpushdownpushdown,updateupdateupdate,queryqueryquery,传统线段树五套餐伺候,但是要维护的信息极多,关键还不太能想到要怎么样维护信息,而且维护代码极长,特别建议刚刚入门线段树来锻炼一下。题目一 子区间最大公约数NC15557 连续区间的最大公约数 这道题没有修改,只有查询。查询最大公约数还是比较简单的,但是查询原创 2020-08-05 09:26:24 · 139 阅读 · 0 评论 -
线段树差分及其应用
更好的阅读体验简述概念和应用 所谓的差分,其实就是后一项与前一项的差,对于第一项而言,a[0]=0a[0] = 0a[0]=0 。设数组 a[ ]={1,9,3,5,2}a[~]=\{1,9,3,5,2\}a[ ]={1,9,3,5,2} ,那么差分数组t[ ]={1,8,−6,2,−3}t[~]=\{1,8,-6,2,-3\}t[ ]={1,8,−6,2,−3} ,即 t[i]=a[i]−a[i−1]t[i]=a[i]-a[i-1]t[i]=a[i]−a[.原创 2020-08-04 16:23:43 · 671 阅读 · 0 评论 -
入门线段树和树状数组
学习了一周的线段树和树状数组,深深地体会到了这每种操作几乎都是 O(logN)O(logN)O(logN) 级别的数据结构的美,但是做起题来还是相当痛苦的(特别是一开始只会模板的时候,很难灵活运用线段树的性质)。还好有雨巨大神带入门,视频讲解十分直观(b站上也有很多介绍线段树的视频),不用像以前一样看各种博客题解入门。但是我现在就是在写博客了,希望能尽可能将我目前理解的知识整理出来,毕竟能让别人看懂(网上已经这么多关于线段树和树状数组的文章你还能找到我,相信我,你没选错),才说明自己也是真的懂了(虽原创 2020-08-02 17:39:38 · 302 阅读 · 0 评论 -
[SCOI2007]降雨量 线段树和区间最值(RMQ)问题
题目链接P2471 [SCOI2007]降雨量听说博客观看效果更佳 这道题是比较经典的 RMQRMQRMQ 问题,找到X和Y年间的最值来进行判断真假 , 用线段树维护是比较简单好写的。然而这只是一个小判断,比较难的是判断 maybemaybemaybe 。如果没有想好直接打代码会调很久(没错就是我)。怎么维护查询区间最大值我就不再这里赘述了,不懂线段树的先去入门(此题也是线段树入门题)。我讲几个很坑的点(比较坑我的点): 1.询问的X年降雨量不超过Y,但是中间年份降雨量一定小于X(注意X和Y原创 2020-07-31 12:06:07 · 171 阅读 · 0 评论