随笔分类 -  线段树

摘要:主席树在线维护区间不同数的个数 考虑一个序列${a_1,a_2,a_3,...,a_n}$,对于其中一个元素$a_i$,假定下一个和它相同的数是$a_j$,不难发现对于右端点大于$j$的区间,若这两个数对答案产生贡献,则贡献一定来自于$a_j$。 原因如下: 对于同时包含两个数的区间,我们可以认为在 阅读全文
posted @ 2020-11-25 15:55 Nanjo 阅读(109) 评论(0) 推荐(0)
摘要:数组是一种单点修改,单点查询的基础数据结构。 如果要对数组改进,使之可持久化,那么显然我们需要利用其它的数据结构来改进它。 对于单点修改和单点查询两种操作,很容易发现可持久化线段树也是支持这种操作的。 所以,我们利用可持久化线段树来维护一个可持久化数组 阅读全文
posted @ 2019-11-30 13:56 Nanjo 阅读(127) 评论(0) 推荐(0)
摘要:"Luogu P3834" 可持久化数据结构就是支持在历史版本上进行查询和修改操作的数据结构。 主席树就是对线段树的改进,使之可持久化。 前置知识:动态开点线段树 我们利用权值(值域)线段树统计区间内的数出现的次数。 (权值线段树类似于线段树+桶) 那么我们可以对每一个位置建立一棵线段树,维护$1$ 阅读全文
posted @ 2019-11-28 16:53 Nanjo 阅读(111) 评论(0) 推荐(0)
摘要:"Luogu P2471" 啊啊啊啊这真是一道史上最毒瘤的题目!!!!! 题意就是给出n个年份的降雨量 询问:“自从$y$年以来$x$年的降雨量最大”的正确性。 显然有多种情况需要考虑,那么就需要通过分类讨论理清程序的逻辑了。 对于“自从$y$年以来$x$年的降雨量最大”这样一句话,可以转化成如下条 阅读全文
posted @ 2019-11-27 14:55 Nanjo 阅读(136) 评论(0) 推荐(0)
摘要:"Luogu P1502" 题意很好理解,就是问给出的矩形套住的最大和。 但是做起来却十分麻烦。 ——来自疯狂爆10分的愤怒 一个比较高效的思路是——把每一个星星作为左下角向右上方拓展形成一个矩形, 拓展的规则为只要窗口的右上角在这个矩形之内,就可以覆盖到这个星星。然后用线段树维护一条扫描线从左往右 阅读全文
posted @ 2019-11-02 18:04 Nanjo 阅读(199) 评论(0) 推荐(0)
摘要:Luogu P5490 作为一道模板题让我卡了一个月…… 对于线段树+离散化新手而言这实在是太难了…… 有关离散化: 可以查看这一篇文章:https://www.jianshu.com/p/9347659dcf18 一种缩小数据范围的小技巧,在本题中用于缩短线段树的区间大小 基本思路 想象一条直线, 阅读全文
posted @ 2019-10-29 20:03 Nanjo 阅读(142) 评论(0) 推荐(0)