欧涛爬树
题号:NC54060
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

树状图是一种数据结构,它是由n(n>=1)个有限节点和n-1条边组成一个具有层次关系的集合。把它叫做"树"是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:

每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;

欧涛发现了一棵树,树上每一个节点都有一种水果,欧涛很喜欢水果串,他现在从树根1开始爬,每得到一种水果他就会把它串起来,直到这个水果串到达最长,他现在想知道他可以得到多少串不同的水果串(顺序不同的水果串视为两串不同的水果串)

输入描述:

本题为多组输入,直到文件结束,不懂的看备注

一个数n(1<=n<=5000000)

接下来一行n个字符(只含小写字母)第i个字符表示节点i的水果种类

然后n-1行a,b,表示a,b两个点之间有一条边

输出描述:

欧涛可以得到的水果串的数量
示例1

输入

复制
6
abcdef
1 2
1 3
2 4
2 5
3 6

输出

复制
3

备注:

int main()

{

while(scanf("")!=EOF)

{

}

return 0;

}