Regionals 2011, Asia (KMP,字符串哈希)

来源:互联网 发布:迅捷网络的登录密码 编辑:程序博客网 时间:2024/06/11 05:35

题目大意:就是求满足第一个串的后k位 与 第二个串的前k位 相同的k的个数

BKDR Hash Function
字符串哈希做法:

#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;unsigned long long p=31;  //p还可取131,1313,13131.。。unsigned long long x,y,q;char s1[11000],s2[11000];int main(){    int T;    cin>>T;    int i,j;    while(T--)    {        cin>>s1>>s2;        int l1=strlen(s1);        int l2=strlen(s2);        x=0;y=0;q=1;        int ans=1;        for(i=l1-1,j=0;i>=0,j<l2;i--,j++)        {            x+=q*(s1[i]-'a');            y=y*p+(s2[j]-'a');            if(x==y)                ans++;            q*=p;        }        cout<<ans<<endl;    }    return 0;}



原创粉丝点击