当前位置: 首页 > news >正文

(简记)(自用)线段树区间拆分时间复杂度证明

如题,假定整数域线段树初始区间 \([1,n]\),每次划分长度不为 \(1\) 的区间 \([l,r]\) 会找到 \(mid=\lfloor\frac{l+r}{2}\rfloor\),划分成 \([l,mid],[mid+1,r]\)。求证划分任意合法区间 \([L,R]\) 最多使用 \(O(\log n)\) 步,且最多划分成 \(O(\log n)\) 个区间。

考虑划分递归过程,如果单侧递归即 \(R\le mid\lor L\geq mid+1\),由于线段树递归不超过 \(O(\log n)\) 层,这样的步数也是 \(O(\log n)\) 的,且对区间划分数量没有任何贡献。

否则双侧递归,即 \(L\le mid\land R\geq mid+1\),这时候就分别转化为了两边区间的一段后缀/前缀划分问题。考虑解决前缀,可以近似地看作 \([1,+\infty)\) 上的线段树划分,根据二进制分组划分出的区间是 \(O(\log n)\) 的,且每有一次这样的递归就多划定一个区间,所以步数也是 \(O(\log n)\) 的。

综上,证毕。

http://www.hskmm.com/?act=detail&tid=38321

相关文章:

  • 数字人企业:数字人公司排行榜深度解析
  • 数字人:怎么选择数字人实力公司
  • 拉格朗日插值优化DP
  • 冬日绘板 2026 珂朵莉计划 如何获取 Token
  • 数字人企业:数字人公司技术驱动的三大标杆
  • Linux下的拼音输入法 (2)
  • 数字人平台:重点推荐优质数字人公司
  • SpringBoot整合缓存2-Redis
  • 数字人企业:推荐数字人TOP3公司
  • NOI25D2T2
  • 时钟同步
  • 深入解析:【Java系列课程Java学前须知】第3课 JDK,JVM,JRE的区别和优缺
  • 10.24 CSP-S 模拟37 改题记录
  • 数字人企业:数字人公司重点推荐与选择指南
  • C++实验二
  • 据说每邀请一位朋友加入Comet,您可以获得10刀乐奖励:D
  • 2025.10.24NOIP
  • 小程序 访问第三方网页
  • 王炸!OpenAI 发布 Atlas 浏览器!!
  • 国产开源数据库调研项目的LaTeX专业排版实践
  • Asterix cat-062 ,航班号字段的编码解码
  • AI优化企业:GEO公司技术先驱
  • 题3
  • 课后作业4
  • 吴恩达深度学习课程一:神经网络和深度学习 第四周:深度神经网络的关键概念
  • CompletableFuture串联多个异步任务实践
  • 城市基础设施安全运行监管平台
  • 第171-172天:代理通讯篇无外网或不可达SockS全协议规则配置C2正反向上线解决方案
  • SpringBoot整合缓存1-Ehcache
  • 【开题答辩全过程】以 M11289生鲜商城为例,具备答辩的问题和答案