Loading [MathJax]/jax/output/HTML-CSS/jax.js
编程题
                ### 问题描述

一个机器人工厂有编号为 1nn 个机器人。这些机器人组成了一个层级结构,每个机器人最多只有一个直接上级,每个机器人都有一个型号,这些型号不一定唯一。

如果编号为 a 的机器人是编号为 b 的机器人的直接上级,则称编号为 a 的机器人是编号为 b1 级上级。

如果编号为 a 的机器人是编号为 b1 级上级的 (k1) 级上级,则称编号为 a 的机器人是编号为 bk 级上级(k>1)。

> 编号为 1 的机器人是所有机器人的上级。

工厂中的层级关系不会形成循环。换句话说,没有一个机器人是它自己的直接或间接上级(即,对于某个xx>0,没有一个机器人是其自身的 x 级上级)。

如果编号为 a 的机器人是编号为 bk 级上级,则称编号为 b 的机器人是编号为 ak 级下属。

工厂管理者希望了解每个机器人的下属情况,包括下属的数量以及各个下属的型号。他们提供了一个列表,包含 m 对数字 uiki。请帮助他们确定对于每对 uiki,编号为 ui 的机器人的 ki 级下属中有多少个不同的型号。

输入格式

输入的第一行将包含一个整数 n1n105),表示机器人的数量。

接下来的 n1 行每行包含两个整数 ab1a,bnab),表示编号为 b 的机器人的直接上级是编号为 a 的机器人。

接下来的一行包含一个整数 m1m105),表示询问的数量。

接下来的 m 行每行包含两个整数 uiki1uin1kin1),询问编号为 ui 的机器人的 ki 级下属中有多少个不同的型号。

最后一行包含 n 个由小写字母组成的字符串,以空格分隔,表示每个机器人的型号。字符串长度不超过 10

输出格式

对于每个询问,输出一行包含一个整数,表示编号为 ui 的机器人的 ki 级下属中有多少个不同的型号。

输入样例

6
1 2
1 3
1 6
2 4
3 5
5
1 1
1 2
1 3
3 1
6 1
qwqwq lanqiao lanqiao hello world ovo

输出样例

2
2
0
1
0

说明

  • 在第一个询问中,编号为 1 的机器人的 1 级下属分别为 (qwq,lanqiao,lanqiao),共 2 种不同型号。
  • 在第二个询问中,编号为 1 的机器人的 2 级下属分别为 (hello,world),共 2 种不同型号。
  • 在第三个询问中,编号为 1 的机器人没有 3 级下属,所以询问的结果为 0
查看答案
赣ICP备20007335号-2