C++实用技巧——离散化( 二 )

如果将这些数作为数组的下标来保存对应的属性时 , 我们将需要开一个很大的数组 。 以上方数据为例 , 这个数组至少要开21472313246768这么大的空间 , 这样很多题目的空间限制这关都过不了了 , 怎么办呢?当数据只需表示出它们之间的相对大小关系 , 而不需表示出具体数值时 , 我们就要用一个小技巧——离散化 。

还是以上面的数据为例 , 经过离散化处理后 , 数据就成了:

1463205

神不神奇 , 意不意外!!!

——不意外!!!

在这里 , 我就献上处理数据的程序 , 教大家如何实现 。

第一种方法:

const int N=1e5+7;

int t[N
a[N
;

int main()

{

cin>>n;

推荐阅读