#P9648. [SNCPC2019] Unrooted Trie
[SNCPC2019] Unrooted Trie
Description
题目背景
trie 的定义是这样的:
-
一棵大小为 的 trie,是一棵有着 个节点和 条边的有根树,每一条边上都标有一个字符;
-
在 trie 中,从根结点到树上某一结点的路径代表一个字符串,节点 代表的字符串记为 ,特别地,根节点代表的字符串为空串。
-
若节点 是节点 的父节点,且 是连接 与 的边上的字符,则有 (这里的 表示字符串的连接,而非普通的加法运算)。
当每一个节点代表的字符串互不相同时,该 trie 是合法的。
给出一个无根的 trie,求其中有多少节点可作为该 trie 的根,使得该 trie 合法。
Input Format
每个测试点由多组数据组成。
输入的第一行包含一个正整数 ,代表测试数据的组数。
对于每组测试数据:
数据的第一行包含一个正整数 ,代表 trie 的大小。
接下来的 行中,第 行包含两个正整数 以及一个字符 ,用空格隔开,表示有一条标有 的边连接着 和 。
Output Format
对于每组测试数据,输出一行一个正整数,表示可以成为根后可以使该 trie 合法的节点的个数。
2
6
3 1 a
3 2 a
3 4 b
4 5 c
4 6 d
6
3 1 a
3 2 a
3 4 b
5 4 c
6 4 c
2
0
Hint
【样例解释】
对于第一组测试数据,只能选择节点 或节点 作为根,否则 和 相同。
对于第二组测试数据,无论如何选择节点作为根, 和 或 和 相同。
对于每组数据,,, 都是小写字母。
对于每个测试点,保证给出的图是一棵树,所有的 之和不会超过 。
京公网安备 11011102002149号