#L5054. 「JOISC 2025 Day4」迁移计划
「JOISC 2025 Day4」迁移计划
#5054. 「JOISC 2025 Day4」迁移计划
题目译自 JOISC 2025 Day4 T2 「移住計画 / Migration Plan」
题目描述
JOI 国有 座城市,编号从 到 ,通过 条单向道路连接。具体来说,对于每座城市 (),有一条从 到 的路,且 。
每座城市有其危险度。首都 的危险度为 ,而城市 () 的危险度定义为从 到 的路径上道路数。JOI 国的结构保证每座城市到 的路径唯一。
目前,城市 () 居住着 只海狸。JOI 国总统比太郎制定了一项为期 天的移居计划,每天发生以下三种事件之一:
- 移居:危险度为 的城市中的所有海狸,移居到通过若干道路可达的危险度为 () 的城市,移居目标因结构唯一。
- 接纳移民:城市 的海狸数增加 只,因 JOI 国外部移民到来。
- 调查:统计当时城市 的海狸数量。
作为比太郎的助手,你发现无需实地走访,仅凭移居计划信息就能计算每次调查的结果。
给定 JOI 国结构、初始海狸数和移居计划,编写程序计算每次调查的答案。
输入格式
第一行包含一个整数 。
第二行包含用空格分隔的 个整数 。
第三行包含用空格分隔的 个整数 。
第四行包含一个整数 。
接下来 行,每行描述了一个事件,包含若干空格分隔的整数。令第一个数为 ,格式如下:
- :后接 ,表示移居事件,危险度 的海狸移至危险度 。
- :后接 ,表示接纳移民,城市 增加 只海狸。
- :后接 ,表示调查事件,查询城市 的海狸数。
输出格式
对于每个 () 的调查事件,按顺序输出一行,表示当时城市 的海狸数。
样例 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
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
输出
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
输出
6
18
19
6
0
这个样例满足子任务 的限制。
数据范围与提示
对于所有输入数据,满足:
- ()
- ()
- ()
- 时, ()
- 时,, ()
- 时, ()
- 至少存在一个
- 所有输入为整数
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 1 | 4 | |
| 2 | 8 | |
| 3 | 13 | |
| 4 | 15 | (),调查次数 |
| 5 | 调查次数 | |
| 6 | 27 | () |
| 7 | 18 | 无附加限制 |