離散化
簡介
所謂離散化,一般是指數據範圍很大,但是它的實際大小並不是很重要,我們只需要用到它們的相對大小關係。
或者是有些數本身很大,自身無法作爲數組的下標來方便地處理
實現
C++ 離散化有現成的 STL 算法:
vector<int>a,b; std::sort(a.begin(),a.end()); V.erase(std::unique(a.begin(),a.end(),a.end())); for(int i=0;i<=n;i++) b[i] = std::lower_bound(a.begin(),a.end(),b[i]) - a.begin();