#P14867. [OOI2024 资格赛]Legs warm-up exercise腿部热身练习
[OOI2024 资格赛]Legs warm-up exercise腿部热身练习
题目描述
在国家 X 中,有 座城市和 条道路。道路集合有两个有趣的性质:
- 所有道路都是单向道路;
- 如果忽略道路方向,把所有道路看成无向边,那么任意两座城市之间最多只有一条简单路径。
因此,忽略方向后,这张图是一片森林:在每个连通分量中,边数比点数少 。
定义函数 如下:
- 如果存在从 到 的有向路径,那么 等于这条路径上的道路数量;
- 如果不存在从 到 的有向路径,那么 。
国家地图的美观度定义为:
政府希望计算当前地图的美观度,并处理 次修改。每次修改后,都需要重新输出地图美观度。
修改有四种类型:
- 添加一条从城市 到城市 的道路。
- 删除城市 和城市 之间的道路。
- 反转城市 和城市 之间道路的方向。
- 将从城市 到城市 的路径上的所有道路都定向为从 指向 。保证忽略方向后, 到 之间存在路径,所以这个操作可行。
保证每次修改后,城市和道路组成的无向图仍然是一片森林。
注意,本题中的询问会真正修改地图,后续询问基于前面修改后的结果。
输入格式
第一行包含一个整数 (),表示测试组编号。
第二行包含三个整数 (,,),分别表示城市数、初始道路数和修改次数。
接下来 行,每行包含两个整数 (),表示初始地图中有一条从 到 的有向道路。
接下来 行,每行包含三个整数 (,),表示一次修改的类型和相关顶点。
输出格式
第一行输出初始地图的美观度。
接下来 行,每行输出一次修改后的地图美观度。
样例 #1
样例输入 #1
0
5 4 4
1 2
2 3
3 4
4 5
3 4 3
2 3 2
1 4 2
4 1 4
样例输出 #1
20
6
3
4
16
样例解释

初始图,城市 形成一条路径,边方向依次为 。
例如,,因为这些点对之间有直接道路。类似地,,因为需要经过两条道路才能到达。另一方面,例如 ,因为后者不能从前者到达。对所有有序点对求和,得到 。
第一次修改需要反转城市 和城市 之间道路的方向。原来方向是 ,修改后变为 。此时答案为 。
此处应插入原题图:第一次修改后的图。
接着删除城市 与城市 之间的道路。此时答案为 。

之后添加一条从城市 到城市 的道路。此时答案为 。

第三次修改后的图。
最后,将城市 到城市 路径上的所有道路都定向为从 指向 。此时答案为 。
此处应插入原题图:第四次修改后的图。
评分方式
测试数据包含 10 个测试组。只有通过该组以及若干指定的前置测试组,才能获得该组分数。Offline-testing 表示该组结果只会在比赛结束后公布。
| 组别 | 分数 | 附加限制 | 修改类型限制 | 依赖组 | 备注 |
|---|---|---|---|---|---|
| 0 | - | - | - | 样例 | |
| 1 | 10 | 0 | - | ||
| 2 | 8 | 0,1 | |||
| 3 | 11 | 只有类型 1 | - | ||
| 4 | 7 | 类型 1,2 | 3 | ||
| 5 | 13 | 只有类型 3 | - | ||
| 6 | 9 | 类型 3,4 | 5 | ||
| 7 | 12 | - | - | 除类型 4 修改外,总有 $ | |
| 8 | 18 | 0-7 | - | ||
| 9 | 6 | 0-8 | Offline-testing | ||
| 10 | - | 0-9 | |||