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

树状数组/差分数组/线段树/莫队算法介绍

1 树状数组介绍

功能

提供动态区间查询,即区间查询,单点修改,时间复杂度均为O(log n)

原理

树状数组

核心知识说明

  • lowbit计算
    lowbit(x) 表示x 将最右边为1的二进制所表示的数字(最低有效位),比如:6(110)的lowbit(5) = 2(10),计算方法如下
    lowbit(x) = x & (- x)

  • 假设tr为一个数组,长度要比实际元素个数大1,第一位不用,tr[x] 表示 nums[x - lowbit(x) + 1] + … nums[x]之和,即:
    在这里插入图片描述

  • 根据x如何计算其左兄弟位置(左兄弟表示同一个父节点下其左边的一个兄弟,用于计算前缀和)即:
    在这里插入图片描述

  • 根据x如何计算父节点,(单点更新的时候需要,往上更新所有的父节点)
    在这里插入图片描述

http://www.xdnf.cn/news/18149.html

相关文章:

  • 政务窗口服务满意度调查:服务型政府建设赋能方案(北京市场调研)
  • 2025年12大AI测试自动化工具
  • 电子电气架构 --- 软件项目风险管理
  • 「内力探查术」:用 Instruments 勘破 SwiftUI 卡顿迷局
  • Android Coil 3拦截器Interceptor计算单次请求耗时,Kotlin
  • 软件测试-Selenium学习笔记
  • Node.js 在 Windows Server 上的离线部署方案
  • Linux系统安全补丁管理与自动化部署研究与实现(LW+源码+讲解+部署)
  • 2.Kotlin 集合 List 所有方法
  • 云原生俱乐部-mysql知识点归纳(3)
  • 告别 Dify 工作流,让 NL2SQL 落地更直接
  • HarmonyOS 中的 泛型类和泛型接口
  • PHP如何使用JpGraph生成折线图?
  • 摄像头模块在运动相机中的应用
  • Java代码审计-SE-4
  • 微服务集训整理
  • Java开发面试实战:Spring Boot微服务与数据库优化案例分析
  • Shopee本土店账号安全运营:规避封禁风险的多维策略
  • C/C++ 常见笔试题与陷阱详解
  • 深入理解Prompt构建与工程技巧:API高效实践指南
  • 网络编程day2
  • Windows 8.1 补丁 KB2919355 安装方法 详细步骤
  • 管理本地用户和组:红帽企业 Linux 系统安全的基础
  • Python数据容器(列表,元组,字典) 从入门到精通
  • ​Kali Linux 环境中的系统配置文件与用户配置文件大全
  • 无人机基础知识
  • 力扣70:爬楼梯
  • Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
  • 功能测试相关问题
  • CNN-BiLSTM-Attention、CNN-BiLSTM、BiLSTM三模型多变量时序光伏功率预测