【BZOJ】3339 - Ⅲ - 变式Ⅱ+变式Ⅲ

变式Ⅱ

【题意】
有一个长度为 n 的数组a1,a2,,an m 次询问,每次询问一个区间[l,r]内次小没有出现过的自然数 mex2(al,al+1,...,ar)

【数据范围】
n,q200000
0ai200000 aiZ
0<lrn

【分析1】60%做法:莫队+树状数组
莫队的转移。
在树状数组上用从前往后的方式询问,控制差值 1
时间复杂度: O(nnlogn)

【分析2】100%做法:离线+线段树
原题的做法一样,不过把永久化标记弄成两个,然后每次询问求次小值即可。
时间复杂度: O(nlogn)


变式Ⅲ

【题意】
有一个长度为 n 的数组a1,a2,,an m 次询问,每次询问一个区间[l,r]内第 k 小没有出现过的自然数mexk(al,al+1,...,ar)
【数据范围】同上

【分析】
然而方法都是一样的,线段树每个节点上存前 K 小的即可。

  1. 分块排序,莫队
    时间复杂度:O(nnlogn)
    空间复杂度: O(n)

    • 左端点排序,线段树
      时间复杂度: O(knlogn)
      空间复杂度: O(knlogn)

    • 也就是说,根据 k <script type="math/tex" id="MathJax-Element-2292">k</script>的数据范围选择不同的算法。

      【代码】略…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值