事情是这样的,本地爆栈了,调试都调试不了的那种,但是试着交了一下直接过了
所以有大佬知道为什么吗/kk
贴code
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int N=3e6+5;
int T,n,q;
int cnt,ans;
struct mm
{
int tag,ch[80];
}t[N];
void insert(char s[])
{
int rt=0,n=strlen(s);
for(int i=0;i<n;i++)
{
int y=s[i]-'0';
if(t[rt].ch[y]==0)
t[rt].ch[y]=++cnt;
rt=t[rt].ch[y];
t[rt].tag++;
}
}
int query(char s[])
{
int rt=0,n=strlen(s);
for(int i=0;i<n;i++)
{
int y=s[i]-'0';
if(t[rt].ch[y]==0) return 0;
rt=t[rt].ch[y];
}
return t[rt].tag;
}
int main()
{
scanf("%d",&T);
while(T--)
{
for(int i=0;i<=cnt;i++)
{
for(int j=0;j<=80;j++)
t[i].ch[j]=0;
t[i].tag=0;
}
cnt=0; ans=0;
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++)
{
char a[N];
scanf("%s",a);
insert(a);
}
for(int i=1;i<=q;i++)
{
char a[N];
scanf("%s",a);
printf("%d\n",query(a));
}
}
return 0;
}
//