编程题
### 问题描述
大衣有一棵有 $N$ 个节点的树,节点 $1$ 为根节点。每个节点有一个二进制值($0$ 或 $1$),最初所有节点的二进制值都为 $0$。
定义点集的**与值**为:对于点集中的所有节点,它们的二进制值按位与得到的值。
对于树上的一条边,将其移除后得到的两棵树,如果它们各自的所有节点的与值相等,则称这条边是**好的**。
大衣可以进行 $Q$ 次询问,每次询问有如下形式:
- $1\space\space u$:如果节点 $u$ 是叶子节点,将其二进制值变为 $1$,否则,将其二进制值变为其后代节点的与值。
- $2$:请找出此时树上好的边的数量。
注意:节点 $X$ 的后代节点为它子树上除了 $X$ 以外的所有节点。
### 输入格式
第一行输入一个正整数 $N$ 表示树上节点的个数。
接下来 $N-1$ 行每行输入一条边,第 $i$ 条边连接的两个节点为 $u_i,v_i$。
下一行输入一个正整数 $Q$ 表示询问的数量。
接下来 $Q$ 行每行输入一组询问,如题所述。
### 输出格式
对于每次询问 $2$,输出此时树上好的边的数量,并换行。
### 样例输入
```text
5
1 2
1 3
2 4
2 5
5
1 1
1 3
2
1 5
2
```
### 样例输出
```text
3
2
```
### 说明
询问 $1$:节点 $1$ 不是叶子节点,因此将其二进制值变为其后代节点的与值。节点 $1$ 的后代为 `{2,3,4,5}`,因为所有节点的二进制值都为 $0$,所以它们的与值也为 $0$,故将节点 $1$ 的二进制值变为 $0$。
询问 $2$:因为节点 $3$ 是叶子节点,所以将节点 $3$ 的二进制值变为 $1$。
询问 $3$:连接节点 $(1,2),(2,4),(2,5)$ 的边都是好的:
- 边 $(1,2)$:将其移除后得到的两棵树包含的节点分别为 `{1,3}` 和 `{2,4,5}`。它们各自的所有节点的与值分别是 $0\And1=0$ 和 $0\And0\And0=0$,它们是相等的。
- 边 $(2,4)$:将其移除后得到的两棵树包含的节点分别为 `{4}` 和 `{1,2,3,5}`。它们各自的所有节点的与值分别是 $0$ 和 $0\And0\And1\And0=0$,它们是相等的。
- 边 $(2,5)$:将其移除后得到的两棵树包含的节点分别为 `{5}` 和 `{1,2,3,4}`。它们各自的所有节点的与值分别是 $0$ 和 $0\And0\And1\And0=0$,它们是相等的。
询问 $4$:因为节点 $5$ 是叶子节点,所以将节点 $5$ 的二进制值变为 $1$。
询问 $5$:连接节点 $(1,2),(2,4)$ 的边都是好的.
### 评测数据规模
对于所有的评测数据,$1\le N,Q\le 10^5$,$1\le u_i,v_i\le N$ 且 $u_i\ne v_i$。