U330219 【模板】BK-Tree
题目背景
BK-Tree(全称Burkhard Keller Tree)是一种基于[编辑距离(Levenshtein距离)](https://www.luogu.com.cn/problem/P2758)建立的树形结构。常用于根据概念执行拼写检查,也可用于近似字符串匹配。
题目描述
给出一个词典,每次查询词典中与字符串 $S_i$ 的编辑距离小于等于 $Q_i$ 的字符串个数
输入格式
第一行包含两个正整数 $N$ 和 $Q$。
接下来的 $N$ 行,每行一个字符串。表示给出的词典。
再接下来 $Q$ 行,每行给出一个整数 $k_i$ 表示模糊程度,一个待查字符串 $S_i$ ,询问与 $S_i$ 的编辑距离小于等于$k_i$的单词有多少个。
输出格式
共 $Q$ 行
输出词典中与 $S_i$ 编辑距离小于等于 $k_i$ 的单词的个数。
说明/提示
### 样例解释
#### 样例#1解释
- `abcd` 在词典中出现过;
- `abc` 与单词 `abcd`、`aabc` 的编辑距离都是 $1$;
- `abcdd` 与单词 `abcd`、`abcde`、`abced` 的编辑距离都是 $1$。
#### 样例#2解释
- `noip` 与`lxl`、`fusu`的编辑距离都是 $4$;
- `kkksc04` 与单词 `kkksc03` 的编辑距离为 $1$;
- `kksc03` 与单词 `kkksc03` 的编辑距离为 $1$;
- `fusw` 与单词 `fusu` 的编辑距离为 $1$。
### 数据范围与约定
- 对于 $0\%$ 的数据,和样例一模一样;
- 对于 $50\%$ 的数据,$N,Q \le 50$;
- 对于 $100\%$ 的数据,$N \le 3 \times 10^2$ , $Q\le 10^3$ , $1 \le |W_i|,|S_i|\le 20$,所有字符串均由小大写字母与数字构成,保证词典中单词互不相同。