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

摘要:最短路+线段树优化建图水题。 阅读全文
posted @ 2019-07-04 10:23 LiGuanlin 阅读(275) 评论(0) 推荐(0)
摘要:线段树维护奇怪信息。 阅读全文
posted @ 2019-07-01 16:06 LiGuanlin 阅读(249) 评论(0) 推荐(1)
摘要:主席树模拟题。 阅读全文
posted @ 2019-06-28 09:30 LiGuanlin 阅读(162) 评论(0) 推荐(0)
摘要:贪心水题。 阅读全文
posted @ 2019-06-26 23:23 LiGuanlin 阅读(183) 评论(0) 推荐(0)
摘要:神仙线段树维护概率/期望方程。 阅读全文
posted @ 2019-06-04 15:17 LiGuanlin 阅读(224) 评论(0) 推荐(1)
摘要:线段树维护单调栈。 阅读全文
posted @ 2019-05-21 20:30 LiGuanlin 阅读(176) 评论(0) 推荐(0)
摘要:离线线段树+dfs序。 阅读全文
posted @ 2019-05-21 20:10 LiGuanlin 阅读(125) 评论(0) 推荐(0)
摘要:李超线段树板子. 阅读全文
posted @ 2019-05-20 16:07 LiGuanlin 阅读(204) 评论(0) 推荐(0)
摘要:重构树+线段树合并。 阅读全文
posted @ 2019-05-07 15:22 LiGuanlin 阅读(152) 评论(0) 推荐(0)
摘要:题目描述: bz 题解: 线段树模拟费用流。 想法和种树有点类似。 每次取区间内权值和最大的一段,然后整体乘$-1$,代表再次选中时会去掉之前的影响。 线段树维护一堆东西…… 小白逛公园双倍快乐。乘$-1$时交换正反。 [滑稽] 代码: #include<cstdio> #include<cstri 阅读全文
posted @ 2019-04-24 16:33 LiGuanlin 阅读(245) 评论(0) 推荐(0)
摘要:题目描述 题解: 广义$SAM$+倍增+线段树合并三连。 对于给出的$m$个串建广义后缀自动机,用线段树合并处理$parent$树子树内所有串出现次数。 将询问挂在第$pr$位上。 最后扫一遍原串,记录当前节点以及当前串长,在$parent$树上倍增找$s[pl,pr]$串,最后用线段树查询就好了。 阅读全文
posted @ 2019-04-19 16:44 LiGuanlin 阅读(173) 评论(0) 推荐(0)
摘要:题目描述 题解: 坑题搞了三天。 莫队+线段树。 还有一些和斐波那契数列有关的性质。 首先答案是$a_1f_1+a_2f_2+…+a_nf_n$, 考虑插进去一个元素对答案产生的影响。 比如插进去一个$a_0$,插进去之后会排到第$k$位。 那么答案是$a_1f_1+a_2f_2+…+a_0f_k+ 阅读全文
posted @ 2019-04-15 20:29 LiGuanlin 阅读(301) 评论(0) 推荐(0)
摘要:题目描述 题解: 大意是$0$为源,所有叶子节点为汇,求费用在$m$以内的最大流。 直接跑网络流会$T$。 考虑树形$dp$,发现自己不会。 考虑贪心,每次找一个路径总费用最小的叶子结点(每条边费用为$0$或$1$或$inf$),然后求出路径最大容量, 整条树链都减掉最大容量。 输入时每条边有$(a 阅读全文
posted @ 2019-02-22 10:07 LiGuanlin 阅读(292) 评论(0) 推荐(1)
摘要:题目描述 题解: 考虑到经过一系列变化后小数不可能比大数大,我们可以用线段树维护区间修改。 重点是,每个节点都可以通过$a[i]=a[i]*t1+a0[i]*t2+t3$这个函数来表示,我们就可以把三个标记一起维护。 代码: 阅读全文
posted @ 2019-02-04 13:33 LiGuanlin 阅读(373) 评论(0) 推荐(1)
摘要:题目描述 题解: 动态 点分治。 点分治可以帮助我们将树上的点分层,如果我们把这些点按生成顺序建树的话,我们会得到一棵点分树。 点分树有一个特别好的性质,就是不管原来的树长什么样,建出来的点分树的深度都大约是$logn$。 而且若在点分树中a有一个儿子b,那么在原树中a的管辖子树(即找a作重心的子树 阅读全文
posted @ 2018-12-28 14:42 LiGuanlin 阅读(145) 评论(0) 推荐(0)
摘要:题目描述 题解: 貌似是LCT的套路题? 就是建主席树,然后每次形成环时将环中的第一条边送给新边作标记。 维护这种恶心东西当然用LCT了。 这道题还不同于裸一点的LCT题。本题要对于每条边新建一个节点(类似圆方树),然后将时间信息放到新建节点上。 最后每次查询只需要查标记小于l的边就行了。 因为标记 阅读全文
posted @ 2018-12-23 18:58 LiGuanlin 阅读(141) 评论(0) 推荐(0)
摘要:题目描述 题解: SDOI SD题。 LCT维护线段树, 线段树维护dfs序。 由于每次修改只是从根到x,我们可以将它理解为LCT的access操作。 然后轻重链信息发生变化时,在线段树上改一下就好了。 LCTaccess板子敲错导致自己做自己爷爷。 代码: 阅读全文
posted @ 2018-12-23 13:36 LiGuanlin 阅读(144) 评论(0) 推荐(0)
摘要:这个是题目描述: 题解: 啊啊啊啊啊…… 垃圾分数规划。 垃圾树链剖分。 垃圾斜率优化。 垃圾darkbzoj。 这里才是题解: 我们设那个分数的值=k,那么有 $(yi-k*xi)+(qj-k*pj)=0$ 我们要做的是让k最大。 那么很明显开两颗线段树,每个节点存一个凸包。 鉴于我们要让b值最大 阅读全文
posted @ 2018-12-21 13:38 LiGuanlin 阅读(214) 评论(0) 推荐(0)
摘要:题目描述 题解: 其实就是单点修改,树链查max+sum。 没啥好说的,树剖+线段树搞一搞就好了。 代码: 阅读全文
posted @ 2018-12-21 13:30 LiGuanlin 阅读(137) 评论(0) 推荐(0)
摘要:题目描述 题解: 因为这个东西占的是最短路的最后一条边,我们可以建出最短路树。 一遍dij即可。 如果这个图就是一棵树,那么所有答案全为-1; 所以说非树边更新了答案。 现在让我们开一棵 2,2,4-三甲基-3-乙基戊烷 ,就是#r巨佬的231树。 如果6- - ->7,那3和7的答案都可以由1-> 阅读全文
posted @ 2018-12-21 13:26 LiGuanlin 阅读(359) 评论(1) 推荐(1)