在统计文章时,一定不要把单词直接拼接在一起,可以在拼接时加一些特殊符号,例如:
cin>>n;
for(int i=1;i<=n;i++){
cin>>x[i];
}
string g="",r="{";
for(int i=1;i<=n;i++){
g+=r;
g+=x[i];
}
并且,如果使用AC自动机,记得在find函数中特判一下特殊符号,记得变量要清零,如:
void find(string s){
int p=1;
for(int i=0;s[i];i++){
if(s[i]=='{'){
p=1;
continue;
}
int c=s[i]-'a';
p=ch[p][c];
d[p]++;
}
for(int i=cnt;i>=1;i--){
d[fail[qi[i]]]+=d[qi[i]];
}
}