離散化ブラックテクノロジー


なぜ離散化するのか
重み値を下にすると、値が大きすぎて保存できません.そして、離散化する各配列の数を別の値の小さい配列にマッピングします.
平常の離散化
通常c++で打つ離散化は、順番に並べ、structを打って保存することもあります.面倒くさい!
不思議なブラックテクノロジー
void lisan(int *x){//  c++                   。
    arr data;
    fo(i,1,n)data[i]=x[i];
    sort(data+1,data+1+n);//       。
    int o=unique(data+1,data+1+n)-data-1;// data  [1..n]  ,   
    fo(i,1,n)x[i]=lower_bound(data+1,data+1+o,x[i])-data;//  x[i] data            ,   -data
}