随笔分类 -  数据结构----线段树

摘要:[NOI2018] 你的名字 该来的总归还是会来的…… 题意: [题目传送门][1] 一句话题意:给出一个字符串$T$,$Q$组询问,每次询问字符串$S$中有多少个本质不同的子串在$T[l..r]$中没有出现。(我们用$T[l..r]$表示截取$T$中$[l, r]$区间内的字符得到的字符串) 题解 阅读全文
posted @ 2019-04-12 08:02 Apocrypha 阅读(651) 评论(0) 推荐(0)
摘要:ZJOI2019 线段树 题意: [题目传送门][1] 题解: 来讲一个非常卡常的矩阵+线段树做法。首先转化一下题意,直接将$2^m$棵线段树建出来一定是不现实的,我们对于每一个节点,记录这个节点在所有线段树中带有标记的次数,这样所有节点的权值之和就是答案了。 接下来考虑如何维护这个答案,由于每一个 阅读全文
posted @ 2019-04-02 18:51 Apocrypha 阅读(398) 评论(0) 推荐(1)
摘要:李超树详解 最近写了几棵李超树,算是线段树的扩展应用吧,顺便在这里讲讲。 概念: 李超树是一种高效的维护线段,单点查询端点最大值的一种线段树。支持插入一条线段,单点查询这个点的权值最大值(即包含这个点中所有线段的$y$的最大值)。 具体实现: 我们先将每一条线段都表示成点斜式,接下来用$k$表示斜率 阅读全文
posted @ 2019-03-10 21:50 Apocrypha 阅读(2671) 评论(0) 推荐(4)
摘要:[TOC] APIO2018 新家 [题目传送门][1] 题意 五福街是一条笔直的道路,这条道路可以看成一个数轴,街上每个建筑物的坐标都可以用一个整数来表示。小明是一位时光旅行者,他知道在这条街上,在过去现在和未来共有 $n$ 个商店出现。第 $i$ 个商店可以使用四个整数 $x_i$, $t_i$ 阅读全文
posted @ 2018-11-05 16:08 Apocrypha 阅读(454) 评论(0) 推荐(1)
摘要:[TOC] codeforces 877E Danil and a Part time Job [题目传送门][1] 题意: 给出一个树,每一个点都有权值,权值为0或1,要求支持两个操作:子树权值翻转,子树权值和。 题解: 比较水的一道E题吧,反正就是用线段树维护$Dfn$序就行了,差不多树剖那个套 阅读全文
posted @ 2018-10-04 17:31 Apocrypha 阅读(254) 评论(0) 推荐(0)
摘要:[TOC] codeforces 794F Leha and security system [题目传送门][1] 题意 给出一个长度为$n$的序列,有两种操作: 1.将区间$[l,r]$中每一个元素的数字$x$改为$y$。 2.询问区间$[l,r]$的元素之和。 一共$q$次操作。$(1 \leq 阅读全文
posted @ 2018-08-30 18:23 Apocrypha 阅读(320) 评论(0) 推荐(0)
摘要:[TOC] BZOJ1798 维护序列Seq [题目传送门][1] 题解 比较简单的支持区间加和区间乘的线段树,注意$pushdown$的时候区间加和区间乘的处理即可。 code include using namespace std; typedef long long ll; bool Fini 阅读全文
posted @ 2018-08-06 20:42 Apocrypha 阅读(203) 评论(0) 推荐(0)
摘要:[TOC] BZOJ4364 wall砖墙 [题目传送门][1] 题解 一道比较好想的线段树。线段树每个节点维护当前区间的最低高度$Mn$与最高高度$Mx$。然后每次询问的时候记得用父节点的值更新子节点的$Mn$和$Mx$就行了,最后每个叶子节点的$Mx$就是答案了。 code include us 阅读全文
posted @ 2018-08-06 19:16 Apocrypha 阅读(116) 评论(0) 推荐(0)