hash小结
Posted jz929
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hash小结相关的知识,希望对你有一定的参考价值。
hash
int hash(ll x)
ll t = x % N;
while (h[t] && h[t] != x) t = (t + 1) % N;
return t;
int main()
fo(i, 1, n)
x = (x * 26 + s[i] - 97) % mo;
t = hash(x);
h[t] = x;
double hash
int hash(ll x, ll y)
ll t = x % N;
while (h[t][0] && (h[t][0] != x || h[t][1] != y)) t = (t + 1) % N;
return t;
int main()
fo(i, 1, n)
x = (x * 26 + s[i] - 97) % mo;
y = (y * 26 + s[i] - 97) % mo1;
t = hash(x, y);
h[t][0] = x, h[t][1] = y;
hash字符串中的子串
int main()
cf[0] = 1;
fo(i, 1, n) cf[i] = cf[i - 1] * 26;
fo(i, 1, n)
qz[i] = (qz[i - 1] * 26 + s[i] - 97) % mo;
// 对于[i~j]的hash值
(qz[j] - qz[i - 1] * cf[j - i + 1] % mo + mo) % mo;
树hash
树\\(hash\\)用来比较树是否同构。
详见该博客
以上是关于hash小结的主要内容,如果未能解决你的问题,请参考以下文章