From 2b916cdf13cb3a010d4a57e49e102f25528cb680 Mon Sep 17 00:00:00 2001 From: Ariel Date: Sun, 3 Mar 2024 11:50:10 +0800 Subject: [PATCH] Update include.hh --- include.hh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include.hh b/include.hh index 7662cef..8800dff 100644 --- a/include.hh +++ b/include.hh @@ -115,6 +115,20 @@ struct pair_hash { #define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) #define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) #define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} /* io */ #define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL))