离散化
离散化
离散化概述
- Q:什么是离散化?
- A:将极大的数据通过不改变相对位置的方式存储在小容量数组中。
- Q:什么时候用离散化?
- A:当题目中数据量极大,但对具体数值没有要求,只管相对位置时就可以使用离散化。
离散化常用方法
map
map实际上是红黑树(或哈希)实现的,利用其下标特性可以实现离散化,但只能用于给所有数据赋予编号,而不能排序。
手动离散化
-
将数组按数值排序。
-
必要时去重。
-
在排序好的数组中用二分查找原数的位置。
-
好处在于,可以将数组进行相对位置不变的变化。
NKOJ 1353 图形面积
思路:二维离散化
实现方法
- 将所有输入的坐标离散化。
- 循环遍历每一个离散化之后的点,判断其是否在矩形中,如果在就给答案加上这一块的面积。
注意事项
- 在开离散化数组时一共有 \(2n\) 个点,不要开小了。

浙公网安备 33010602011771号