不要心存懒得写多重哈希和取模的幻想。。。
刚开始只写了一个自然溢出,挂了。
然后加了一个取模的,也挂了。
于是干脆写了可动态调整哈希重数的,终于过了,部分代码:
for (int i = 0; i < M; i++) {
mod[i] = (ll) rand() * rand() + 546;
base[i] = (ll) rand() * rand() + 43;
}
mod[0] = 998244353;
mod[1] = 1e9 + 7;
mod[2] = 1e9 + 3;
如果你不写十几个 base 休想用自然溢出过这道题。