字符串哈希板子

字符串哈希重点在于将字符串映射成一个P进制数字

P通常取131

ull p[maxn],h[maxn];
const int P=131;
void init(){
	p[0]=1,h[0]=0;
	for(int i=1;i<=n;i++){
		p[i]=p[i-1]*P;// p[i] -> p^i
		h[i]=h[i-1]*P+s[i];// h[i] -> s[1~i] 的哈希值 
	}
}
ull get(int l,int r){
	return h[r]-h[l-1]*p[r-l+1];
}
//判断两子串是否相同 
bool substr(int l1,int r1,int l2,int r2){
	return get(l1,r1)==get(l2,r2);
}
posted @ 2025-03-09 09:18  Marinaco  阅读(11)  评论(0)    收藏  举报
//雪花飘落效果