编程题
### 题目大意 给出一棵以 $1$ 为根结点含有的 $𝑛$ 个节点的有根树。 每个结点都是蓄水池,可以是空的,也可以是满的,我们用权值来表示,$1$ 表示这个结点装满了水,$0$ 表示这个结点没有任何水。 一共进行 $𝑚$ 次操作。每次操作有 $2$ 种: + 操作 $1$,输入 $get$ $x$,询问结点 $x$ 的子树中有多少个结点是装满水的。 + 操作 $2$,输入 $po w$ $x$,将结点 $x$ 的子树中装满水的全部倒空,空的结点的装满水。 对于每个操作 $1$ 的询问给出答案。 ### 输入格式 第一行输入包含一个整数 $n$,表示树的节点的数量。 第二行行包含 $n - 1$ 个用空格分开的数字 $p_2,p_3,...,p_n$,$p_i$ 是第 $i$ 个结点的父亲。 第三行包括 $n$ 个空格分隔的整数,$t_1,t_2,...,t_n$,表示该结点的蓄水状况。 第四行行包含一个整数 $q$ ,表示操作的数量。 接下来 $q$ 行包括表 $get$ $x$ 和 $po w$ $x$,表示题目描述的操作。 ### 输出格式 按顺序输出对于每个操作 $1$ 的询问的答案。 ### 样例输入 ```txt 4 1 1 1 1 0 0 1 9 get 1 get 2 get 3 get 4 pow 1 get 1 get 2 get 3 get 4 ``` ### 样例输出 ```txt 2 0 0 1 2 1 1 0 ``` ### 评测数据规模 对于 $100$% 的评测数据,$1\leq n ,q\leq 200000,1 \leq x\leq n,0\leq t_i \leq 1,1\leq p_i < i$。
查看答案
赣ICP备20007335号-2