为什么求thair 会超时
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxN=2000010;
int thair[maxN][127],ed[maxN],cnt;
void Insert(string s){
int t=1;
for(int i=0;i<s.size();i++){
int p=s[i];
if(!thair[t][p]) thair[t][p]=++cnt;
t=thair[t][p];
ed[t]++;
}
}
int Query(string s){
int t=1;
for(int i=0;i<s.size();i++){
int p=s[i];
t=thair[t][p];
if(t==0) return 0;
}
return ed[t];
}
int main(){
int t;
cin>>t;
for(int i=1;i<=t;i++){
int n,m;
cin>>n>>m;
memset(thair,0,sizeof(thair));
memset(ed,0,sizeof(ed));
cnt=1;
for(int j=1;j<=n;j++){
string s;
cin>>s;
Insert(s);
}
for(int j=1;j<=m;j++){
string s;
cin>>s;
cout<<Query(s)<<endl;
}
}
return 0;
}
234都tle