void work(){//离散化 sort(lsh+1,lsh+lshh+1,cmp); p[0]=-1; for(int i=1,j=0;i<=lshh;i++) { if(*lsh[i]!=p[j]) p[++j]=*lsh[i]; *lsh[i]=j; } }
定义int *lsh[maxn],把要离散化的数据取地址(&)然后之前存进去,work一次就ok了