博客
关于我
线段树
阅读量:649 次
发布时间:2019-03-15

本文共 896 字,大约阅读时间需要 2 分钟。

线段树原理

将[1, n]分解成若干特定的自取件(数量不超过4*n),然后将每个区间[L, R]都分解为少量特定的子区间,通过对这些少量子区间的修改或者统计,来实现快速对[L, R]的修改或者统计。

线段树属性

  • 每个区间的长度是区间内整数的个数;
  • 叶子节点长度为1,不能再分;
  • 若一个结点对应的区间是[a, b],则其子区间对应的节点分别是[a, (a+b)/2]和[(a+b)/2+1, b];
  • 区间上的任意一条线段都分成不超过 2 log₂N 条线段。

线段树的定义

定义线段树的构造及操作方式,确保每一步操作的正确性和高效性。

线段树的构造

  • 初始化延迟标记为0;
  • 递归构造左、右子树;
  • 回溯更新当前节点的值。

单点更新

插入一个点值,更新对应节点,并触发懒标记处理。

区间查询

从根节点开始,递归查询对应区域,确保结果的准确性。

区间更新

利用延迟标记优化多个点更新,避免重复操作,提高效率。

懒标记

每个节点新增标记,记录节点是否进行了某种修改操作。标记操作会影响子节点,需要在查询时触发。

通过延迟标记优化区间操作,减少重复触发节点计算,提升整体效率。

区间更新的正确处理

  • 检查节点是否需要传递标记;
  • 在传递标记时,更新子节点的值和标记;
  • 清除本节点的标记。

区间查询的正确触发

  • 检查本节点是否需要触发懒标记处理;
  • 在触发时,更新子节点的值和标记。

通过精准处理懒标记和节点传递,以下从头到尾。这是权限概念的关键纯属性。以下是内层设计:

\boxed{

}

通过精准的懒标记处理和递归传递,线段树能够有效地执行区间更新、查询操作。懒标记的设计虽然绕过了立即更新所有相关节点的必要,但必须严格按照规则进行,否则会导致数据错误。确认传递方向,并在必要时触发节点更新,是线段树高效运转的关键。

关键步骤

  • 节点传递规则: 在传递标记时,明确左、右子树的区间范围。
  • 数据更新: 执行子节点的数据更新,并添加标记,确保父节点的信息准确。
  • 标记清理: 在完成子节点的操作后,及时清理父节点的标记,避免重复处理。
  • 这样的严格流程确保了线段树在复杂操作中能够高效且准确地执行任务。

    \boxed{

    }

    转载地址:http://oybmz.baihongyu.com/

    你可能感兴趣的文章
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡器处理session共享的几种方法(转)
    查看>>
    nginx负载均衡的5种策略(转载)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nginx配置——不记录指定文件类型日志
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    Nginx配置参数中文说明
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置如何一键生成
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    NHibernate学习[1]
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>