AT_joisp2025_k.移住計画 (Migration Plan)
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
JOI 国有 N 个城市,这些城市编号为 1 到 N。在这些城市之间,有 N−1 条单向道路。具体地,对于每个 i=2,3,…,N,从城市 i 到城市 Pi 有一条道路。这里保证 1≤Pi<i。
每个城市都有一个危险度。作为首都的城市 1 的危险度为 0。对于城市 i(2≤i≤N),其危险度被定义为从城市 i 通往城市 1 的路径上经过的道路数。由于 JOI 国的结构,从城市 i 到城市 1 的路径恰好只有 1 条。
现有 Ki 只海狸分别住在城市 i(1≤i≤N)。JOI 国总统 Bitarou 制定了海狸们的迁移计划。迁移计划将在接下来的 Q 天内执行。第 j 天(1≤j≤Q),会发生以下 3 种事件之一:
- 迁移
此时所有居住在危险度为 Xj 的城市的海狸,会各自通过若干道路,前往它们从当前城市能通过道路到达的危险度为 Yj 的城市进行迁移。这里保证 0≤Yj<Xj。由于 JOI 国的结构,对于每只海狸来说,目标迁移城市是唯一确定的。 - 接纳移民
由于接纳了国外移民,居住在城市 Aj 的海狸数量增加 Lj。 - 调查
调查当前居住在城市 Bj 的海狸数量。
作为 Bitarou 的下属,你发现你可以仅通过迁移计划的信息计算每次调查事件的结果,无需实际访问那些城市。
给定 JOI 国的结构、当前海狸的分布以及迁移计划的信息,请编写程序,计算每次调查事件的结果。
输入格式
输入以以下格式从标准输入给出:
N P2 P3 ⋯ PN
K1 K2 ⋯ KN
Q
(第 1 个查询)
(第 2 个查询)
⋮
(第 Q 个查询)
每一个查询(1≤j≤Q)为一行若干空格分隔的整数。第一个整数为 Tj,其含义如下:
- 当 Tj=1 时,接下来有两个整数 Xj,Yj。表示第 j 天发生的是迁移事件。那一天所有居住在危险度为 Xj 的城市的海狸,会迁移到危险度为 Yj 的城市。
- 当 Tj=2 时,接下来有两个整数 Aj,Lj。表示第 j 天发生的是接纳移民事件,城市 Aj 的海狸增加 Lj。
- 当 Tj=3 时,接下来有一个整数 Bj。表示第 j 天发生的是调查事件,需要输出当前城市 Bj 的海狸数量。
输出格式
对于每一个 Tj=3 的查询,依次输出调查城市的海狸数量,每个占一行。
输入输出样例
输入#1
4 1 1 2 1 3 4 3 6 3 1 1 1 0 3 1 3 2 1 2 1 3 2
输出#1
1 8 0 3
输入#2
3 1 1 3 1 4 11 2 2 5 1 2 0 3 1 1 1 0 3 1 3 2 2 3 4 3 3 1 1 0 3 3 3 1
输出#2
3 13 0 4 0 17
输入#3
7 1 2 1 3 3 2 5 2 8 9 4 0 5 10 1 3 1 2 4 10 3 2 1 6 3 1 2 0 3 1 3 4 2 5 6 3 5 3 3
输出#3
6 18 19 6 0
说明/提示
小题目
令城市的最大危险度为 D。
- (4 分)D=1。
- (8 分)N≤20。
- (13 分)D≤20。
- (15 分)Tj=2(1≤j≤Q),且 Tj=3 的 j 的个数不超过 5。
- (15 分)Tj=3 的 j 的个数不超过 5。
- (27 分)Tj=2(1≤j≤Q)。
- (18 分)无额外限制。
样例解释 1
最开始,城市 1,2,3,4 分别有 1,3,4,3 只海狸。各城市的危险度分别为 0,1,1,2。
- 第 1 天发生调查事件。需输出城市 1 的海狸数量,即 1。
- 第 2 天发生迁移事件。所有居住在危险度 1 的城市(即城市 2,3)的海狸全部转移到危险度 0 的城市(城市 1)。此时城市 1,2,3,4 的海狸数量变为 8,0,0,3。
- 第 3 天发生调查事件。需输出城市 1 的海狸数量,即 8。
- 第 4 天发生调查事件。需输出城市 2 的海狸数量,即 0。
- 第 5 天发生迁移事件。所有危险度为 2 的城市(即城市 4)的海狸迁移到危险度为 1 的城市(城市 2)。此时城市 1,2,3,4 的海狸数量为 8,3,0,0。
- 第 6 天发生调查事件。需输出城市 2 的海狸数量,即 3。
此输入数据满足小题目 2,3,4,5,6,7 的限制。
样例解释 2
最开始,城市 1,2,3 分别有 3,1,4 只海狸。各城市的危险度分别为 0,1,1。
- 第 1 天发生接纳移民事件。城市 2 的海狸增加 5。此时城市 1,2,3 的海狸数量为 3,6,4。
- 第 2 天发生迁移事件。危险度为 2 的城市没有海狸,因此无人迁移。
- 第 3 天发生调查事件。需输出城市 1 的海狸数量,即 3。
- 第 4 天发生迁移事件。所有危险度为 1 的城市(城市 2,3)的海狸迁移到危险度为 0 的城市(城市 1)。此时城市 1,2,3 的海狸数量为 13,0,0。
- 第 5 天发生调查事件。需输出城市 1 的海狸数量,即 13。
- 第 6 天发生调查事件。需输出城市 2 的海狸数量,即 0。
- 后面事件同理,省略。
此输入数据满足小题目 1,2,3,7 的限制。
样例解释 3
此输入数据满足小题目 2,3,5,7 的限制。
约束条件
- 2≤N≤2000000。
- 1≤Pi<i(2≤i≤N)。
- 0≤Ki≤100(1≤i≤N)。
- 1≤Q≤2000000。
- Tj 取 1,2,3 中的一个(1≤j≤Q)。
- 对于 Tj=1,0≤Yj<Xj≤N−1(1≤j≤Q)。
- 对于 Tj=2,1≤Aj≤N,1≤Lj≤100(1≤j≤Q)。
- 对于 Tj=3,1≤Bj≤N(1≤j≤Q)。
- Tj=3 的 j 至少有一个。
- 输入的所有值均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?