#P16118. [2026年山东集训一轮]渡船很爽
[2026年山东集训一轮]渡船很爽
题目描述
有 个岛屿和 艘船。第 艘船航线的两个端点为岛屿 和 。
保证这些船的航线连通所有岛屿,并且没有两艘船的航线端点完全相同。每艘船只能停泊在其航线的两个端点岛屿,并且只能在这两个端点岛屿之间移动。
你需要派遣若干个船只管理员。管理员可以跟随船在岛屿之间移动。
你需要依次进行如下步骤:
- 添加不超过 艘船,并指定每艘船航线的两个端点;
- 撤走任意数量的船;
- 在每艘船上派遣任意数量的船只管理员;
- 指定剩余每条船初始停泊在哪个岛屿。
筹备完成后,必须保证对于任意一对岛屿 ,都可以通过重复以下操作将货物从 运送到 :
- 货物和管理员均可以在岛屿与停靠在该岛屿的船只之间上下;
- 船只可以在其连接的两个岛屿之间往返,无论船上是否有管理员或货物。
在运输过程中的任何时刻,如果某艘船停泊在岛屿 ,则船上的管理员人数必须不少于 。
对于每个满足 的 ,求出最少需要派遣的管理员总数。
输入格式
从文件 ferry.in 中读入数据。
第一行三个整数 。
第二行 个整数,第 个表示 。
接下来 行,第 行两个整数 ,表示第 艘船的航线端点。
输出格式
输出到文件 ferry.out。
对于每个 ,输出一行一个整数,表示最多添加 艘船时最少需要派遣的管理员总数。
样例 1
输入
4 3 0
2 1 3 2
1 2
2 3
3 4
输出
7
样例 2
输入
4 3 1
2 1 3 2
1 2
2 3
3 4
输出
7
5
样例 3
输入
3 3 0
1 1 1
1 2
1 3
2 3
输出
2
样例 4
输入
8 7 0
2 2 2 2 2 2 2 2
1 2
2 3
3 4
4 5
5 6
6 7
7 8
输出
14
样例 5
输入
8 7 0
16 39 36 23 15 48 23 56
1 2
1 3
2 4
2 5
3 6
3 7
7 8
输出
245
样例 6
输入
10 13 4
314 159 265 358 979 323 846 264 338 327
1 2
1 4
2 3
2 5
3 6
4 5
4 7
5 6
5 8
6 9
7 8
8 9
9 10
输出
3139
2901
2722
2567
2461
数据范围与约定
对于所有测试数据,满足:
$$1\le n\le 2\times 10^5, \qquad n-1\le m\le 4\times 10^5, \qquad 0\le q\le 2\times 10^5, \qquad 1\le S_i\le 10^9.$$本题开启合理的子任务依赖。
| 子任务编号 | 特殊性质 | 分值 |
|---|---|---|
| 1 | ,,, | 12 |
| 2 | ,, | 13 |
| 3 | , | 12 |
| 4 | 13 | |
| 5 | 8 | |
| 6 | 18 | |
| 7 | 无 | 24 |