变式Ⅱ
【题意】
有一个长度为
n
的数组
【数据范围】
n,q≤200000
0≤ai≤200000
且
ai∈Z
0<l≤r≤n
【分析1】60%做法:莫队+树状数组
莫队的转移。
在树状数组上用从前往后的方式询问,控制差值
≤1
。
时间复杂度:
O(nn√logn)
【分析2】100%做法:离线+线段树
和原题的做法一样,不过把永久化标记弄成两个,然后每次询问求次小值即可。
时间复杂度:
O(nlogn)
变式Ⅲ
【题意】
有一个长度为
n
的数组
【数据范围】同上
【分析】
然而方法都是一样的,线段树每个节点上存前
K
小的即可。
分块排序,莫队
时间复杂度:O(nn√logn)
空间复杂度: O(n)左端点排序,线段树
时间复杂度: O(knlogn)
空间复杂度: O(knlogn)也就是说,根据 k <script type="math/tex" id="MathJax-Element-2292">k</script>的数据范围选择不同的算法。
【代码】略…