线段树合并总结

貌似是AFO一周年了/ll
先开个坑简单记录点东西,感觉这玩意很厉害,但是学的不够透,所以准备等有时间了好好学一学。

全文假设单点修改次数为n(大部分情况单点修改次数就是树的节点数),线段树值域为m
将单点修改次数带权重链剖分,按照重剖dfs序进行线段树合并,那么空间复杂度为O(n)
k次单点修改的线段树节点个数为O(klog(mk))。考虑前logk层至多为k个节点,后log(mk)层至多为klog(mk)个节点。
考虑到了一个叶子节点的时候,只有这个节点到根节点上每个轻边父节点对应的重儿子才存在一棵线段树,易知至多有O(logn)棵线段树。这些从上往下,第i棵线段树上至多进行n2i1次单点修改操作。那么此时总空间为i=1lognn2i1log(mn2i1)
简单做一个近似数量级估计约为i=1lognn2i(log(mn)+i)。错位相减化简得总空间复杂度为O(nlog(mn)+n),那个log多数情况都是很小的值,可以看作线性空间复杂度。

posted @   Lebron_Durant  阅读(107)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示