题目描述
给定 n 个长度不超过 50 的由小写英文字母组成的单词,以及一篇长为 m 的文章。
请问,其中有多少个单词在文章中出现了。
注意:每个单词不论在文章中出现多少次,仅累计 1 次。
输入
第一行包含整数 T,表示共有 T 组测试数据。
对于每组数据,第一行一个整数 n,接下去 n 行表示 n 个单词,最后一行输入一个字符串,表示文章。
输出
对于每组数据,输出一个占一行的整数,表示有多少个单词在文章中出现。
输入样例 复制
1 5 she he say shr her yasherhs输出样例 复制
3#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; const int N=5e5+5; int ans,cnt,nxt[N],ch[N][30],bo[N],que[N]; void make(char *s) { int u=1,len=strlen(s),i; for(i=0; i<len; i++) { int c=s[i]-'a'; if(!ch[u][c]) ch[u][c]=++cnt; u=ch[u][c]