1 条题解
-
3
对于每一个 ,假设能 找出对于一个 ,最大的 使得 内区间数字的种类数 ,就能 解决,因为对于每一个 最多会找 次。
那么现在问题变成快速对于一个 ,求一个最大的 使得 内区间数字的种类数 ,而且要求在线,但对于每个 , 的询问是递增的。
枚举 ,对于 中的每个位置记录它是否是 中第一次出现,区间数字的种类数即为区间和。
现在问题变成了支持单点修改,快速求一个最大的 使得 的和 ,用树状数组维护前缀和,由于树状数组下标为 处存的值为 区间的和,那么从高到低枚举所求 的二进制位 ,看是否能够往后跳 ,就能求出这个最大的 了。
总的时间复杂度是 。
- 1
信息
- ID
- 2670
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 25
- 已通过
- 7
- 上传者