Home => ProblemSet => 4.1-29:[JSOI2015] 字符串树
Problem2150--4.1-29:[JSOI2015] 字符串树

2150: 4.1-29:[JSOI2015] 字符串树

Time Limit: 2 Sec  Memory Limit: 512 MB  Submit: 0  Solved: 1
[ Submit ] [ Status ] [ Creator: ][ 参考程序 ]

Description

字符串树本质上还是一棵树,即 N 个节点 N−1 条边的连通无向无环图,节点从 1 到 N 编号。与普通的树不同的是,树上的每条边都对应了一个字符串。萌萌和 小V 在树下玩的时候,萌萌决定考一考 小V。每次萌萌都写出一个字符串 S 和两个节点 U,V,小V 需要立即回答 U 和 V 之间的最短路径(即 U,V 之间边数最少的路径,由于给定的是一棵树,这样的路径是唯一的)上有多少个字符串以 S 为前缀。
小V 虽然精通编程,但对字符串处理却不在行。所以他请你帮他解决萌萌的难题。

Input

输入第一行包含一个整数 N,代表字符串树的节点数量。
接下来 N−1 行,每行先是两个数 U,V,然后是一个字符串 S,表示节点 U 和节点 V 之间有一条直接相连的边,这条边上的字符串是 S。输入数据保证给出的是一棵合法的树。
接下来一行包含一个整数 Q,表示萌萌的问题数。
接下来 Q 行,每行先是两个数 U,V,然后是一个字符串 S,表示萌萌的一个问题是节点 U 和节点 V 之间的最短路径上有多少字符串以 S 为前缀。

Output

输出 Q 行,每行对应萌萌的一个问题的答案。

Sample Input Copy

4
1 2 ab
2 4 ac
1 3 bc
3
1 4 a
3 4 b
3 2 ab

Sample Output Copy

2
1
1

HINT

对于 100% 的数据, 1≤N,Q≤105,输入所有字符串长度不超过 10 且只包含 a~z 的小写字母。

Source/Category