标签:data- uniq color const 相同 lan scanf http nod
sort(sub_a,sub_a+n); int size=unique(sub_a,sub_a+n)-sub_a;//size为离散化后元素个数 for(i=0;i<n;i++) a[i]=lower_bound(sub_a,sub_a+size,a[i])-sub_a + 1;//k为b[i]经离散化后对应的值
第二种方式其实就是排序之后,枚举着放回原数组
用一个结构体存下原数和位置,按照原数排序
我结构体里面写了个重载,也可以写一个比较函数
最后离散化后数在rank[] rank[]rank[]里面
#include<algorithm> struct Node { int data , id; bool operator < (const Node &a) const { return data < a.data; } }; Node num[MAXN]; int rank[MAXN] , n; for(int i=1; i<=n; i++) { scanf("%d",&num[i].data); num[i].id = i; } sort(num+1 , num+n+1); for(int i=1; i<=n; i++) rank[num[i].id] = i;
标签:data- uniq color const 相同 lan scanf http nod
原文地址:https://www.cnblogs.com/young-children/p/11766361.html