标签:
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 27602 | Accepted: 7711 |
Description
Input
Output
Sample Input
3 4 daababac
Sample Output
5
Hint
Source
#include<cstdio> #include<cstring> #define N 16000003 bool hash[N]; //保存子串是否出现过 char w[N]; //保存字符串 int id[500]; //保存字符串中每个字符的值 int main() { int n,nc,i,j; while(~scanf("%d%d",&n,&nc)) { memset(hash,false,sizeof(hash)); //hash数组初始化 memset(id,-1,sizeof(id)); int cnt=0; //cnt值用来作为每个字符的哈希值 scanf("%s",w); int len=strlen(w); for(i=0;i<len&&cnt<nc;i++) { if(id[w[i]]!=-1) continue; id[w[i]]=cnt++; } int ans=0; for(i=0;i<len-n+1;i++) { int s=0; for(j=i;j<i+n;j++) { s=s*nc+id[w[j]]; //每个子串的cn进制数字 } if(hash[s]) continue; ans++; hash[s]=true; } printf("%d\n",ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/hellohacker/p/5881406.html