p进制
idea
将一个字符串映射成一个p进制的数值,最后模Q,为了减少冲突p=131或1331,Q=264,为此我们一般将哈希值用unsigned long long类型存储
e.g
若将A,B,C,D分别映射成为1,2,3,4 ABCD=(1234)131=1 1313+2 1312+3 1311 +4 1310
Warning
- 不能将某个数映射成0(e.g:若A=0,AA=0,非常容易冲突)
用h[N]表示长度为N的字符串前缀的哈希值,已知h[L],h[R],求L~R这一段的哈希值
h[L-1]需要乘上pR-L+1才能让低位和h[R]对齐,h[L~R]=h[R]-h[L-1] pR-L+1