题目:http://acm.hdu.edu.cn/showproblem.php?pid=1381
这题目特么的HD改了输入格式,题目里没写后来才看到的-。-emm是POJ 1200
#include<bits/stdc++.h>
#define PI 3.1415926
#define INF 1e18
#define inf 1e9
#define min(a,b) a<b?a:b
#define max(a,b) a>b?a:b
using namespace std ;
typedef long long ll;
typedef unsigned long long ull;
const int _max = 16000005;
bool hashtable[_max];
char s[16000005];
int n,nc,asc[300];
int main(){
int t;
cin>>t;
while(t--){
scanf("%d%d",&n,&nc);
memset(hashtable,true,sizeof(hashtable));
scanf("%s",s);
int len = strlen(s);
int num = 0;
int ans = 0;
for(int i = 0 ; i < len ; i++)
if(!asc[s[i]])
asc[s[i]] = ++num;
for(int i = 0 ; i < len-n+1 ; i++){
int sum = 0;
for(int j = i ; j < i+n ; j++)
sum += sum*nc + asc[s[j]];
if(hashtable[sum]){
ans++;
hashtable[sum] = false;
}
}
printf("%d\n",ans);
}
return 0;
}