我有一个数组 A[0..n],我需要在区间 A[k₀..n] 中找到最小值。基于此,数组扩展为值 A[n+1],我需要 A[k₁..n+1] 中的最小值。再次用一些 A[n+2] 扩展数组并查询 A[k₂..n+2] 中的最小值。有没有办法在 O(1) 时间内完成每个查询(经过一些预处理)?
与这个早先的问题:Range minimum queries when array is dynamic相比,不同的是,查询区间从不同的位置 k₀、k₁、k₂、...开始,查询区间的末尾始终是数组的最右端。在我的应用程序中,我从一个空数组 (n=0) 开始,因此预处理可能很简单。如果这有帮助,在我的应用程序中,扩展中使用的新值始终为 1+(最后一个查询返回的最小值)。但是位置 k₀, k₁, k₂, ... 取决于数组外部的数据。