- #include<iostream>
- using namespace std;
- __int64 hash[1000000]={0};
- __int64 key;
- __int64 total;
- char text[1600008];
- int num(0);
- const int prime=999983;
- void fac(int k)
- {
- if(!hash[k])
- {
- hash[k]=total;
- num++;
- }
- else
- {
- if(hash[k]==total)
- return ;
- else
- fac((k+1)%prime);
- }
- }
- int main()
- {
- //freopen("in.txt","r",stdin);
- int N,NC,l,i,j;
- scanf("%d%d",&N,&NC);
- getchar();
- scanf("%s",text);
- l=strlen(text);
- for( i=0; i<=l-N; i++)
- {
- key=0;
- total=0;
- for( j=i; j<i+N; j++)
- {
- total+=text[j];
- total*=26;
- }
- key=total%prime;
- fac(key);
- }
- cout<<num<<endl;
- return 0;
- }
1200
最新推荐文章于 2024-10-11 23:33:11 发布