原文:KI子线段树 / AKEE SegmentTree

背景 你 Ki 叔 最近 CF 虐场的同时发明了一种趣味的东西,适用于区间修改查询问题,但合并两个区间的贡献复杂度需要与区间长度有关的问题,这种问题无法用普通线段树去维护,因为复杂度爆炸,过去一般会使用分块维护,需要讨论散块 整块等问题,较为复杂,而神仙大 Ki 子研究出了一种新的方式,代码好写,想法基于在线段树上对节点大小进行根号分治。 理论 理论具体来说: 设立一个阈值 B 修改的时候,对于线 ...

2021-07-01 00:28 0 329 推荐指数:

查看详情

java——线段 SegmentTree

应用:   区间染色   区间查询 线段不是完全二叉树,线段是平衡二叉树 使用数组来实现线段:存储空间为4n 以下是使用数组实现的静态线段: 对于一个区间的更新:   懒惰更新:使用lazy数组记录未更新的内容,下一次访问时先访问lazy数组,若有内容,更新后 ...

Wed Oct 31 17:56:00 CST 2018 0 759
线段

总原理: 将[1,n]分解成若干特定的子区间(数量不超过4*n) 用线段对“编号连续”的一些点,进行修改或者统计操作,修改和统计的复杂度都是O(log2(n)) 用线段统计的东西,必须符合区间加法,(也就是说,如果已知左右两子树的全部信息,比如要能够推出父节点);否则,不可能通过分 ...

Sat May 19 08:43:00 CST 2018 4 11559
线段(区间

目录 为什么要使用线段? 什么是线段? 创建一棵线段 线段的查询操作 线段的更新操作 为什么要使用线段? 最经典的线段问题:区间染色   有一面墙 ,长度为n,每次选择一段儿墙进行染色,m次操作后 ...

Sun Apr 12 16:18:00 CST 2020 0 907
【BZOJ5210】最大连通块和 线段+动态DP

【BZOJ5210】最大连通块和 Description 给出一棵n个点、以1为根的有根,点有点权。要求支持如下两种操作: M x y:将点x的点权改为y; Q x:求以x为根的子树的最大连通块 ...

Sat Mar 24 02:53:00 CST 2018 0 1210
权值线段&线段合并

更新地址:传送门 --- 权值线段 所谓权值线段,就是一种维护值而非下标的线段,我个人倾向于称呼它为值域线段。 举个栗子:对于一个给定的数组,普通线段可以维护某个子数组中数的和,而权值线段可以维护某个区间内数组元素出现的次数。 在实现上,由于值域范围通常较大,权值线段 ...

Wed Oct 24 05:54:00 CST 2018 0 1607
[线段系列] 线段合并

这一篇来讲讲线段合并。 前置知识:动态开点线段 还是一样先给一道例题:[JOI2012] Building2 题面是日文的,这里给出中文翻译: 有n">n">n个城市,它们组成了一棵。 第i">i个城市有一座高度为Hi">Hi的建筑。 n">n">i">Hi">你需要选择一条尽量长 ...

Wed Oct 30 00:59:00 CST 2019 0 293
值域线段and动态开线段

值域线段每一个节点代表一个值,其他没什么区别 动态开就是节省了没有用到节点,其中重要一点的是不需要节点是连续的(即id值是任意的,只要可以找到即可) 例题 Bzoj 4627 回转寿司 题意 给n个数问区间和在L<=sum【r】-sum【l-1】<=R区间 ...

Wed Nov 15 05:14:00 CST 2017 6 816
线段合并 总结

今天学习了一下动态开点的线段以及线段合并吧 理解应该还是比较好理解的,动态开点的话可以避免许多空间的浪费,因为这类问题我们一般建立的是权值线段,而权值一般范围比较大,直接像原来那样开四倍空间的话空间复杂度不能承受。 动态开点的代码如下: 因为对应位置的结点所代表 ...

Wed Apr 17 06:36:00 CST 2019 0 599
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM