【板子】01异或树
//Copyright yeyou26
#include<bits/stdc++.h>
using namespace std;
const int N = 11145;
int t[N][150];
int idx;
int cnt[N];
int n,m,t[N][150],idx,cnt[N]
int trans(char c)
{
return c^64;
}
void Insert(string s)
{
int p=0;
for(int i=0;s[i];i++)
{
int ch=trans(s[i]);
if(!t[p][ch])
{
t[p][ch]=++idx;
}
p=t[p][ch];
}
cnt[p]++;
}
int Query(string s)
{
int p=0;
for(int i=0;s[i];i++)
{
int ch=trans(s[i]);
if(!t[p][ch])
{
return 0;
}
else
{
p=t[p][ch];
}
}
return cnt[p];
}