AT_kupc2021_i Good LACK
题目描述
对于一棵由 $N$ 个顶点构成的有根树,顶点按从 $1$ 到 $N$ 进行编号,顶点 $1$ 是根节点。对于每个顶点 $i$ ($2 \leq i \leq N$),有一个父节点 $P_i$。
每个顶点上都有一个玩具箱,并且每个顶点上都站着一个人。
初始时,顶点 $i$ 的玩具箱里有 $A_i$ 个玩具。
需要满足的是:顶点 $i$ 上的人希望能够收集到 $C_i$ 个玩具。对此规定如下:
- 顶点 $i$ 的人可以从他的子树中选择若干个节点,并从中任意取走一些玩具。
请判断,是否有可能让所有人同时达到他们的目标。(注意,不能重复取走同一个玩具。)
你还需要处理 $Q$ 个查询。在第 $i$ 个查询中,给出 $t_i, v_i, x_i$,并按以下规则更新对应值:
- 如果 $t_i = 1$,将 $A_{v_i}$ 改为 $x_i$
- 如果 $t_i = 2$,将 $C_{v_i}$ 改为 $x_i$
查询后,请判断当前状态下是否所有人都能同时实现他们的目标。
请注意,每次判定是独立的,玩具的实际移动并不会发生。
输入格式
从标准输入中读取如下格式的数据:
> $N$ $P_2$ \ldots $P_N$ $A_1$ \ldots $A_N$ $C_1$ \ldots $C_N$ $Q$ $t_1$ $v_1$ $x_1$ $t_2$ $v_2$ $x_2$ $\ldots$ $t_Q$ $v_Q$ $x_Q$
输出格式
对初始状态以及每次查询后的状态分别输出一行:如果能够让所有人同时达成目标,则输出 `Yes`,否则输出 `No`。
具体来说,第一行输出初始状态的结果,接下来的每一行输出每个查询后的结果。
说明/提示
- $1 \leq N \leq 10^5$
- $1 \leq P_i < i$ ($2 \leq i \leq N$)
- $1 \leq A_i \leq 10^9$
- $1 \leq C_i \leq 10^9$
- $1 \leq Q \leq 10^5$
- $t_i \in \{1, 2\}$
- $1 \leq v_i \leq N$
- $1 \leq x_i \leq 10^9$
- 所有输入都是整数
### 示例解释 1
在初始状态下,可以通过以下分配达成目标:
- 顶点 $1$ 的人从顶点 $1$ 取 $2$ 个玩具,从顶点 $3$ 取 $1$ 个玩具。
- 顶点 $2$ 的人从顶点 $2$ 取 $1$ 个玩具。
- 顶点 $3$ 的人从顶点 $3$ 取 $2$ 个玩具。
处理第一个查询后,顶点 $1$ 的玩具数量从 $2$ 减少到 $1$,因此无法满足所有人的需求。
处理第二个查询后,顶点 $3$ 的人只需要 $1$ 个玩具而不是 $2$ 个,此时可以通过以下分配实现:
- 顶点 $1$ 的人从顶点 $1$ 取 $1$ 个玩具,从顶点 $3$ 取 $2$ 个玩具。
- 顶点 $2$ 的人从顶点 $2$ 取 $1$ 个玩具。
- 顶点 $3$ 的人从顶点 $3$ 取 $1$ 个玩具。
### 示例解释 2
玩具的总数可能会非常大。
**本翻译由 AI 自动生成**