zkw线段树学习笔记
先%一下zkw。sto zkw orz
zkw线段树是一个改良版的线段树。其功能与传统线段树相同,也是用于维护区间信息。但是zkw线段树有很多优点:
- 代码简短;
- 纯天然非递归;
- 常数小(尤其在差分区间更新时)
特点:堆式储存,找父亲只需右移一位。
建树
和线段树一样,父节点左移一位为左儿子,再+1(或者|1)为右儿子。
我们知道,最底层实际上存的是原数组,同时由于堆式储存的特性,序号也是顺序排列的,也就是说当我们需要查询或修改时,只需在原数组序号上加上一个数,设为m吧。
for(m=1;m<n;m<<=1);
实际上,m为最底层所有节点的父节点总数,所以只需设m为1,不断左移,当m>=n时停止。
zkw线段树建树的方式就是首先输入叶子结点的信息然后再一路向上传递信息,直到根结点。
单点修改
比较 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现