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 自动生成**