离散化思想

image.png
image.png(erase去重)
image.png(离散化二分模板,映射到r + 1 方便求前缀和)
r + 1从1开始映射
将每个数映射到下标,方便用二分。
个人认为这种思想与其叫离散化,不如叫坐标映射。

离散化实例

离散化用于本身数据很稀疏的情况,
求对数据进行操作后,某一范围内的和。

Tips

  • 注意要对数据和区间同时排序离散化。- 注意给离散化后的数组内存不能开的太小了
  • 离散化其实就是先对原数组进行去重,在之后对原数组的操作都可以转化为用二分查找离散后的下标然后进行操作
  • 这样做的好处在于可以优化求前缀和的复杂度,(在对太稀疏的数组进行操作时太)。
  • 由于一开始需要将所有原数组的值和查询区间都保留,然后对这些点排序后,再通过二分寻找下标进行插入和查询,所以需要用pair数组来存所有查询区间和数组元素以及它的值。(用数组下标存值则开的内存过于大了)