离散化
离散化
-在不改变数据相对大小的前提下,对数据进行相应的缩小。
-可以有效降低时空复杂度。
-应用于空间不够的情况,数据本身过大无法作为下表的情况。
-且只与数据之间相对大小有关,具体是多少无关。
使用STL进行离散化
-思路:排序,删除重复元素,索引元素离散化后的值。
-实现:
1 for(int i=1;i<=n;i++) { 2 cin>>A[i]; 3 B[i]=A[i]; 4 } 5 sort(B+1,B+1+n); 6 cnt=unique(B+1,B+1+n)-B-1; 7 for(int i=1;i<=n;i++) 8 A[i]=lower_bound(B+1,B+1+cnt,A[i])-B;