#CF343D. Water Tree
Water Tree
markdown
D. 水树
每个测试点的时间限制: 秒
每个测试点的内存限制: MB
输入:标准输入
输出:标准输出
疯狂科学家 Mike 构造了一棵有根树,树中包含 个顶点。每个顶点是一个蓄水池,可以是空的,也可以装满水。
树的顶点编号为 到 ,根节点为顶点 。对于每个顶点,其子节点的蓄水池位于该顶点蓄水池的下方,并且该顶点通过管道与每个子节点相连,水可以沿着管道向下流动。
Mike 想要对这棵树执行以下操作:
- 将顶点 注满水。此时 及其所有子节点都会被注满水。
- 将顶点 清空。此时 及其所有祖先节点都会被清空。
- 查询顶点 当前是否注满水。
初始时,树中所有顶点都是空的。Mike 已经按顺序列出了所有要执行的操作。在对树进行实际操作之前,Mike 决定先通过模拟运行这个操作列表。请帮助 Mike 确定执行完所有操作后得到的结果。
输入
第一行包含一个整数 ()——树中顶点的数量。
接下来的 行,每行包含两个空格分隔的整数 (,)——表示树的一条边。
下一行包含一个整数 ()——要执行的操作数量。
接下来的 行,每行包含两个空格分隔的整数 ()和 (),其中 是操作类型(按照题目描述中的编号), 是执行操作的顶点。
保证给定的图是一棵树。
输出
对于每个类型 的操作,如果顶点是满的,则单独输出一行 ;如果顶点是空的,则输出一行 。按照输入中查询的顺序输出答案。
输入示例
5
1 2
5 1
2 3
4 2
12
1 1
2 3
3 1
3 2
3 3
3 4
1 2
2 4
3 1
3 3
3 4
3 5
输出示例
0
0
0
1
0
1
0
1