本文共 500 字,大约阅读时间需要 1 分钟。
今天主要复习了RMQ和线段树,整理了一下模版。内容如下:
RMQ (范围最大值查询)
RMQ的核心思想是利用凑平方的方法离线处理查询。首先,我整理了与RMQ相关的预处理代码模版。
预处理部分:
需要包含必要的头文件,包括标准输入、字符串操作和算法库。 定义数据结构dmax和dmin分别用于存储区间内最大值和最小值。 实现了一个用于初始化最大值的预处理函数initmax。该函数采用动态规划的方式,计算不同区间的最大值。 实现了一个查询最大值的函数getmax,根据查询区间长度k快速定位预处理表中存储的最大值。 线段树
在学习过程中,我也进一步复习了线段树的相关知识。以下是线段树单点更新和区间查询的模版:
线段树的关键点:
线段树需要维护数据的信息,常用于支持多个操作,如单点更新和区间查询。 线段树的节点包含左孩子和右孩子,用于划分查询区间。 建立线段树时,通过递归的方式将原始区间分解为叶子节点,再逐步合并节点值。 在查询操作中,根据查询范围,递归访问相关节点,累加结果。 未来计划:
- 继续深入学习这两种数据结构,熟练掌握它们的解题思路和实现技巧。
- 应用到实际问题中,锻炼解题能力和创新思维。
转载地址:http://xaytz.baihongyu.com/