mcfx's blog

题解、Writeup、游记和碎碎念

包含标签 CDQ分治 的文章

BZOJ 2989: 数列 & 4170: 极光

给定一个长度为 n 的正整数数列 a[i]。
定义 2 个位置的 graze 值为两者位置差与数值差的和,即 graze(x,y)=|x-y|+|a[x]-a[y]|。
2 种操作(k 都是正整数):
1.Modify x k:将第 x 个数的值修改为 k。
2.Query x k:询问有几个 i 满足 graze(x,i)<=k。因为可持久化数据结构的流行,询问不仅要考虑当前数列,还要考虑任意历史版本,即统计任意位置上出现过的任意数值与当前的 a[x]的 graze 值<=k 的对数。(某位置多次修改为同样的数值,按多次统计)