841. 字符串哈希

Posted 幽殇默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了841. 字符串哈希相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
const int N=1e5+10,P=131;
typedef long long int LL;
LL p[N],h[N];
LL query(int x,int y) 
{
	return h[y]-h[x-1]*p[y-x+1];//对齐再相减
}
int main(void)
{
	int n,m; cin>>n>>m;
	string str; cin>>str;
	p[0]=1,h[0]=0;
	for(int i=0;i<n;i++)
	{
		p[i+1]=p[i]*P;//计算当前为的进制数,1 p  p^2 等等
		h[i+1]=h[i]*P+str[i];//计算前缀和哈希
	}
	while(m--)
	{
		int x,y,xx,yy; cin>>x>>y>>xx>>yy;
		if(query(x,y)==query(xx,yy)) cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
	return 0;
} 

以上是关于841. 字符串哈希的主要内容,如果未能解决你的问题,请参考以下文章

AcWing 841. 字符串哈希(字符串Hash)

字符串哈希

JavaScript笔试题(js高级代码片段)

下文中的哈希片段指的是啥?

URL片段的最大长度(哈希)

URL的PHP​​和哈希/片段部分