for(int i=0;i<n;i++)scanf("%d",a+i); //离散化的 pL=0;for(int i=0;i<n;i++)p[pL++]=a[i];//似乎是将数组a给复制了一遍 sort(p,p+pL),pL=unique(p,p+pL)-p;//排序去重的 for(int i=0;i<n;i++) a[i]=lower_bound(p,p+pL,a[i])-p;//返回就是在数组的位置的 //上面是离散化的一种方法的