C++ アルゴリズムとデータ構造のライブラリ
#include "library/sequence/dispersion.hpp"A: 1 2 3 3 5 9
を変換すると
arr: 1 1 2 1 1 ...
idx: 0 1 2 3 4 5 6 7 8 9 10 11 12 ...
を得る
$O(N)$
vector<int> disp = dispersion(A);
#pragma once
vector<int> dispersion(const vector<int> &A) {
vector<int> res(2e6);
for (auto &&v : A) ++res[v];
return res;
}#line 2 "library/sequence/dispersion.hpp"
vector<int> dispersion(const vector<int> &A) {
vector<int> res(2e6);
for (auto &&v : A) ++res[v];
return res;
}