AT_kupc2021_i.Good LACK
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
对于一棵由 N 个顶点构成的有根树,顶点按从 1 到 N 进行编号,顶点 1 是根节点。对于每个顶点 i (2≤i≤N),有一个父节点 Pi。
每个顶点上都有一个玩具箱,并且每个顶点上都站着一个人。
初始时,顶点 i 的玩具箱里有 Ai 个玩具。
需要满足的是:顶点 i 上的人希望能够收集到 Ci 个玩具。对此规定如下:
- 顶点 i 的人可以从他的子树中选择若干个节点,并从中任意取走一些玩具。
请判断,是否有可能让所有人同时达到他们的目标。(注意,不能重复取走同一个玩具。)
你还需要处理 Q 个查询。在第 i 个查询中,给出 ti,vi,xi,并按以下规则更新对应值:
- 如果 ti=1,将 Avi 改为 xi
- 如果 ti=2,将 Cvi 改为 xi
查询后,请判断当前状态下是否所有人都能同时实现他们的目标。
请注意,每次判定是独立的,玩具的实际移动并不会发生。
输入格式
从标准输入中读取如下格式的数据:
N P2 \ldots PN A1 \ldots AN C1 \ldots CN Q t1 v1 x1 t2 v2 x2 … tQ vQ xQ
输出格式
对初始状态以及每次查询后的状态分别输出一行:如果能够让所有人同时达成目标,则输出 Yes,否则输出 No。
具体来说,第一行输出初始状态的结果,接下来的每一行输出每个查询后的结果。
输入输出样例
输入#1
3 1 1 2 1 3 3 1 2 2 1 1 1 2 3 1
输出#1
Yes No Yes
输入#2
5 1 2 1 3 1000000000 1000000000 1000000000 1000000000 1000000000 1 1 1 1 1 1 1 1 1
输出#2
Yes Yes
输入#3
5 1 2 2 2 109102235 645590056 708566822 497603443 131863700 50073184 441114664 164994352 304489019 158100373 8 1 5 692234112 1 3 610338520 2 4 818442884 2 4 164762830 2 4 923652447 2 4 197720766 1 1 779302743 1 1 222486377
输出#3
No Yes Yes No Yes No Yes Yes Yes
说明/提示
- 1≤N≤105
- 1≤Pi<i (2≤i≤N)
- 1≤Ai≤109
- 1≤Ci≤109
- 1≤Q≤105
- ti∈{1,2}
- 1≤vi≤N
- 1≤xi≤109
- 所有输入都是整数
示例解释 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 自动生成
输入解题思路,AI测评打分。不知道怎么写?