一,什么是线段树 线段树是一种二叉搜索树,它将一个区间划分成一些单元区间 每个单元区间对应线段树中的一个叶结点 将[1,n]分解成若干特定的子区间(数量不超过4*n) 用线段树对“编号连续”的一些点,进行修改或者统计操作,修改和统计的复杂度都是O(log2(n)) 用线段树统计的东西,必须符合区间加 ...
分类:
其他好文 时间:
2019-11-01 21:05:07
阅读次数:
99
关于二维线段树,ta死了 先来看看两种二维线段树的打法 1.四叉树 然而ta死了,ta是$\Theta (n)$的,加上线段树的常数,$T$飞稳 2.线段树套线段树 我尽量画出来... 图中每个方块是一棵线段树 画完长这样(你们凑合看吧,作者已经半卒了) 局部放大图 现在每个圆点代表真正的一个点 接 ...
分类:
其他好文 时间:
2019-11-01 20:46:16
阅读次数:
130
今天介绍一个神仙算法:Dsu On Tree[ 树上启发式合并 ] 这个算法用于离线处理询问子树信息,而且很好写。 但是在你没有理解它之前,这是个很鬼畜的算法。 理解后你才能真心感到它的美妙之处。 关键是它是有着媲美线段树合并的时间复杂度的“暴力”算法。 这里说一件事,我学这个东西时找了很多篇博客, ...
分类:
其他好文 时间:
2019-11-01 20:30:53
阅读次数:
111
并不是很难啊,把细节想好了再写就很轻松了~ code: ...
分类:
其他好文 时间:
2019-11-01 20:29:52
阅读次数:
87
一,线段树做区间乘法 首先要明白,乘法操作高于加法操作 一般的话会开long long ,要去模 对于一个节点o,我们设区间和为sum[o],加法标记为add[o],乘法标记为mul[o] mul标记的初始值是1,add标记初始值是0 在修改值的时候,add的维护需要累加,mul的维护需要累乘 此时 ...
分类:
其他好文 时间:
2019-11-01 20:28:48
阅读次数:
87
问题描述 "LG SP1043" 题解 系列第一题。 $q$ 个询问,求 $[x,y]$ 的最大字段和。 线段树,维护 $[x,y]$ 的 $lmax,rmax,sum,val$ ,向上合并即可。 但是注意询问过程中也需要维护这些信息。 $\mathrm{Code}$ cpp include usi ...
分类:
其他好文 时间:
2019-11-01 09:48:23
阅读次数:
96
bzoj5017 [Snoi2017]炸弹。
(线段树优化建图+)tarjan 缩点+拓扑排序 ...
分类:
编程语言 时间:
2019-11-01 09:32:36
阅读次数:
80
题意大概是动态维护一堆向量 每次求和一个给定向量的点积最大值 sol:把点积的式子转化一下,可以转化成一个直线的形式 然后就发现题目求的其实是一堆直线的截距的最大 这东西动态维护一个凸包能解决 开个线段树即可 为了保证复杂度 只在节点满的时候建立凸包 没了。 ...
分类:
其他好文 时间:
2019-10-31 21:56:36
阅读次数:
75
这一篇博客将教你什么? 如何用LCT打延迟标记,LCT和线段树延迟标记间的关系,为什么延迟标记要这样打。 ——正片开始—— 学习这一篇博客前,确保你会以下知识: Link-Cut-Tree,普通线段树 当然,不会也没有关系,你可以先收藏这篇博客,等你学了以后再来看。 最好通过了这一道题:【模板】线段 ...
分类:
其他好文 时间:
2019-10-31 17:57:36
阅读次数:
91
连续几天的考试都没有总结,今天有些时间,总结一下这几场考试的情况。 10.28场 开场先读题,然后推了推T2,发现是水题。出于对期望的恐惧,没有选择研究T3,而是回头肝T1,想了很久,没有思路。打完T2,自己搓了一些数据,过了,回头打了T1的暴搜,再打了一个表,似乎部分分挺多的。再做T3,有点思路, ...
分类:
其他好文 时间:
2019-10-31 16:34:30
阅读次数:
119