一、最简单的RMQ:静态
【题目描述】
已知有数列 a0,a1,...,aN−1
有 M 次查询Query(x,y)
对于每个 Query(x,y) 求 ax,ax+1,...,ay 范围内的最小值
【输入格式】
第一行: N
第二行:数列a ,共 N 个数
第三行:M
第四行 ~ 第M+3行: x ,y
【输出格式】
对于每个 x ,y ,输出 ax,ax+1,...ay 范围内的最小值
每个值单独成行
【数据范围】
N≤5×106,M≤106
本文介绍了范围最小值查询(RMQ)的四种方法:朴素的动态规划、平方分割、稀疏表和线段树。在静态查询场景下,稀疏表和线段树具有O(1)的查询复杂度,但线段树能支持区间修改,具有O(logN)的修改复杂度。线段树在效率和空间占用上优于平方分割法。
【题目描述】
已知有数列 a0,a1,...,aN−1
有 M 次查询Query(x,y)
对于每个 Query(x,y) 求 ax,ax+1,...,ay 范围内的最小值
【输入格式】
第一行: N
第二行:数列a ,共 N 个数
第三行:M
第四行 ~ 第M+3行: x ,y
【输出格式】
对于每个 x ,y ,输出 ax,ax+1,...ay 范围内的最小值
每个值单独成行
【数据范围】
N≤5×106,M≤106

被折叠的 条评论
为什么被折叠?