Untitled
unknown
plain_text
2 years ago
525 B
5
Indexable
struct haash { const ll B = 149; ll MOD; vll b, h; int n; haash() {} void build_haash(const string &s, ll _MOD = 1e9+7) { n = s.size(); MOD = _MOD; b.resize(n + 1); h.resize(n + 1); b[0] = 1; h[0] = 0; for (int i = 0; i < n; i++) { b[i + 1] = b[i] * B % MOD; h[i + 1] = (h[i] * B + s[i]) % MOD; } } ll operator()(int l, int r) { return (h[r] - (h[l] * b[r - l]) % MOD + MOD) % MOD; } };
Editor is loading...