DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

坐标压缩与查询

返回题目

题解

直接维护数组 AAA,并按顺序处理查询。

对于类型 1,复制 Al,…,ArA_l,\ldots,A_rAl​,…,Ar​,将副本排序并去重。每个原始值在这个有序去重数组 BBB 中的 lower_bound 位置就是压缩后的坐标。区间外的元素不变。

对于类型 2,首先遍历区间求出最小值 mmm 和最大值 MMM。为了避免浮点数运算,对区间中每个候选值 xxx 比较 ∣2x−(m+M)∣|2x-(m+M)|∣2x−(m+M)∣。在使该值最小的所有候选值中选择最小者。数组元素与中间计算均使用 long long。

对于类型 3,直接将区间中的每个元素加上 ddd。

正确性:排序去重后的下标恰好等于严格小于对应数值的不同数值的个数,因此类型 1 正确。类型 2 检查区间中出现的所有候选值,精确比较它们到目标中点距离的两倍,并正确处理距离相等的情况。类型 3 仅修改指定区间内的元素。因此所有查询均得到正确处理。

每次类型 1 查询的时间复杂度为 O(Nlog⁡N)O(N\log N)O(NlogN),其他查询均为 O(N)O(N)O(N)。由于类型 1 最多出现 100100100 次,总时间复杂度为 O(NQ+100Nlog⁡N)O(NQ+100N\log N)O(N,额外空间复杂度为 。

Q
+
100NlogN)
O(N)O(N)O(N)
Solution written by GPT6