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

线段树入门:区间更新

区间更新若对区间的每个点都进行更新则时间复杂度较高可以引入懒操作。对 区间进行更新例如将 区间的所有元素都更新为 步骤如下。1若当前节点的区间被查询区间 覆盖则仅对该节点进行更新并做懒标记表示该节点已被更新对该节点的子节点暂不更新。2判断是在左子树中查询还是在右子树中查询。在查询过程中若当前节点带有懒标记则将懒标记下传给子节点 将当前节点的懒标记清除将子节点更新并做懒标记继续查询。3在返回时更新最值。区间更新的代码实现如下void lazy(int x,int v){ t[x].valv; //更新最值 t[x].lazyv; //做懒标记 } void pushdown(int x){ if(t[x].lazy){ lazy(2*k,t[x].lazy); lazy(2*k1,t[x].lazy); t[x].lazy-1; } } void update(int x,int l,int r,int v){ //将[l,r]区间所有元素更新为v if(t[x].llt[x].rr){ //找到该区间 lazy(x,v); //更新并做懒标记 return; } if(t[x].lazy!-1) //懒标记下传 pushdown(x); int mid(t[x].lt[x].r)1; if(lmid) update(x*2,l,r,v); if(rmid) update(x*21,l,r,v); t[x].valmin(t[x*2].val,t[x*21].val); }例如当我们用 这一组数创建线段树之后对 区间更新为 如图所示另外带有懒标记的区间查询和普通的区间查询不同在查询过程中若遇到有节点带有懒标记则下传懒标记继续查询。代码实现如下int query(int x,int l,int r){ if(t[x].llt[x].rr){ //当前区间被查询区间完全覆盖直接返回 return t[x].val; } if(t[x].lazy!-1) pushdown(x); //下传懒标记 int mid(t[x].lt[x].r)1; int resinf; //设定一个非常大的值 if(lmid) //在左区间查询 resmin(res,query(x*2,l,r)); if(rmid) //在右区间查询 resmin(res,query(x*21,l,r)); return res; }
http://www.rkmt.cn/news/1365823.html

相关文章:

  • 3步掌握高效完整网页截图:告别手动拼接的智能解决方案
  • 如何高效管理中文文献:Jasminum插件终极指南
  • 中兴光猫超级权限解锁:zteOnu工具的完整使用指南
  • 7步掌握SMUDebugTool:AMD锐龙处理器深度调试与性能优化完整指南
  • 144、运动控制中的信号调理:差分信号与隔离
  • RHEL 9保姆级教程:手把手教你用阿里云镜像替换官方yum源(附完整命令)
  • 统信UOS 1060在龙芯3A6000上的性能初探:办公、开发、CAD软件实测,它现在能当主力机了吗?
  • 终极Mac窗口置顶指南:如何让重要窗口始终保持在最前面
  • 在多轮对话应用中感受Taotoken提供的高稳定性与低延迟
  • 免费视频字幕提取终极指南:3分钟快速提取多语言硬字幕
  • QKeyMapper终极指南:免费开源按键映射工具,5分钟让你的键盘鼠标手柄随心所欲
  • Keil MDK异构设备支持问题与Arm DS解决方案
  • 基于LangGraph与Spark的智能代理框架:构建下一代数据科学工作流
  • ERA5数据下载选哪个?单层(ERA5) vs 陆地(ERA5-Land) 产品深度对比与选型指南
  • 终极OneNote Markdown插件:如何让笔记编辑效率提升300%
  • Windows Defender移除工具完整指南:如何安全禁用系统安全组件提升性能
  • 3步搞定网易云NCM音乐解锁:ncmdumpGUI完全实战手册
  • RPR方法:利用惯性主轴实现分子向量性质的快速准确预测
  • 12全排列 II 回溯
  • 哔哩下载姬DownKyi终极指南:免费下载B站8K视频的完整教程
  • Scroll Reverser终极指南:彻底告别macOS滚动方向混乱的智能解决方案
  • 基于支持点样本分割与双重机器学习的高维因果推断实践
  • 11全排列 回溯
  • UnrealPakViewer:深度剖析虚幻引擎资源包的5大可视化分析能力
  • 从Windows开发到Ubuntu 22.04部署:手把手解决JODConverter + LibreOffice的Linux环境乱码与进程管理难题
  • 告别C盘爆满!保姆级教程:在Windows 10/11上把Acrobat 8 Pro装到D盘(附离线激活全流程)
  • 数字主权还是数字枷锁?德国eIDAS钱包的Apple/Google账户依赖之困
  • 抖音下载器:3分钟搞定批量下载,效率提升95%的秘密武器
  • VMware Workstation Pro 17免费许可证密钥终极指南:快速搭建专业虚拟化环境
  • ab、Postman、JMeter并发测试真相:协议层、运行时与系统瓶颈解析