1
0
Fork 0

Update include.hh

This commit is contained in:
Ariel 2024-02-05 00:02:43 +08:00 committed by GitHub
parent 71a4b31b53
commit 2955fa8327
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 1 additions and 13 deletions

View File

@ -43,7 +43,7 @@ constexpr ull MDL2 = 87825;
#define lsp(x) (__builtin_ctzll(ll(x)))
/* arithmetic operations */
#define mod(x, y) (((x) + (y)) % (y))
#define mod(x, y) (((x) % (y) + (y)) % (y))
/* fast pairs */
#define upair ull
@ -93,18 +93,6 @@ struct safe_hash {
}
};
struct pair_hash {
template <typename T, typename U>
size_t operator()(const pair<T, U>& a) const {
auto hash1 = safe_hash()(a.first);
auto hash2 = safe_hash()(a.second);
if (hash1 != hash2) {
return hash1 ^ hash2;
}
return hash1;
}
};
/* build data structures */
#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];)
#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];)