迷失的字符串
时间限制:10s 空间限制:512MB
题目描述
有一棵n个节点的大树,上面每条边有一个小写字符。
对于任意两个不同的点u,v,我们可以在树上找到u出发到v终止的唯一的一条最短路径,并将沿途经过的边上的字符依次写下来,得到一个字符串。
对于一个字符串,如果存在这样一个点对(u,v),使得它们路径上的字符串与其完全匹配,那么我们就称这个字符串属于这棵树。
现在有m个迷失的字符串,请你写一个程序帮助判断每一条字符串是否属于这棵树。
输入格式
第一行包含一个正整数n(2<=n<=30000),表示树的点数。
接下来n-1行每行包含两个正整数a,b和一个小写字符c(1<=a,b<=n,a!=b),表示a点到b点之间有一条无向的树边,上面写着字符c。
接下来一行包含一个正整数m(1<=m<=30000),表示迷失的字符串的个数。
接下来m行,每行一个由小写字符组成的字符串,分别表示每个迷失的字符串。
输入数据保证所有迷之的字符串的长度之和不超过30000。
输出格式
包含m行,对于第i行,如果在树上可以找到第i个字符串,输出YES,否则输出NO。
样例输入
4 1 2 b 1 4 a 2 3 c 9 bc cb b c d aa ab abc cba
样例输出
YES YES YES YES NO NO YES YES YES
提示
没有写明提示
题目来源
By Claris