Hash总结

算法介绍

这个没什么好说的,就是一段比较简单的代码,具体的话要看题目。

自然溢出

这个是比较好用而且容易被卡的一种Hash方式。

(2^{64})当模数然后做(Hash),常数比较小。

单模数

也是比较好卡的(Hash)之一,算法就是把上面算法的(2^{64})改成了(Mod),自己钦定的一个素数。

双模数

这个也是比较好卡的,希望某位dalao可以卡掉这个算法,让(Hash)不复存在。

考虑用两个模数,只有当Hash在这两个模数下都成立才是相等。

树哈希

考虑对于这个树的每一个点做一次遍历然后把(Hash)值存下来即可。

当然还有异或这种便于换根(所以比较好)的作法。

题目运用

[BJOI2015]树的同构

就是树Hash的板子。

[TJOI2017]DNA

感觉字符串有的时候就是把暴力运用到了极致。。。

考虑最多三个不同,那你直接暴力匹配即可,(Hash+O(2))就能够用两个(log)艹翻这题。

后话

如果想要知道怎么卡(Hash)的话,可以找我也可以baidu

原文地址:https://www.cnblogs.com/fexuile/p/11664013.html