离散化

离散化

离散化概述

  • Q:什么是离散化?
  • A:将极大的数据通过不改变相对位置的方式存储在小容量数组中。
  • Q:什么时候用离散化?
  • A:当题目中数据量极大,但对具体数值没有要求,只管相对位置时就可以使用离散化。

离散化常用方法

map

  • map 实际上是红黑树(或哈希)实现的,利用其下标特性可以实现离散化,但只能用于给所有数据赋予编号,而不能排序。

手动离散化

  • 将数组按数值排序。

  • 必要时去重。

  • 在排序好的数组中用二分查找原数的位置。

  • 好处在于,可以将数组进行相对位置不变的变化。

NKOJ 1353 图形面积

思路:二维离散化

实现方法

  • 将所有输入的坐标离散化。
  • 循环遍历每一个离散化之后的点,判断其是否在矩形中,如果在就给答案加上这一块的面积。

注意事项

  • 在开离散化数组时一共有 \(2n\) 个点,不要开小了。
posted @ 2025-04-13 15:45  hsr_ray  阅读(51)  评论(0)    收藏  举报