#P14752. [Bulgarian2021夏季赛]renovation
[Bulgarian2021夏季赛]renovation
题目描述
在奥林匹亚国,公路网络由 N 个城市和 M 条双向高速公路组成。
出于国家管理需要,其中选定了 N-1 条主干公路,使得任意两个城市之间都恰好存在一条简单路径(可以是直接相连,也可以是间接相连)。满足这一性质的公路集合,被政府称为一张主干道路网络。
多年来,这张主干道路网络一直没有变化。现在政府希望进行一次大规模“翻新”,选出一张新的主干道路网络。
为了把旧的主干道路网络变成新的,可以执行如下操作:
- 选择一条当前不是主干公路的边,例如连接城市
x和y; - 将它加入当前主干道路网络中。由于原本
x到y之间已经恰好有一条路径,因此加入这条边后会形成一个环; - 为了保持主干道路网络仍然是一棵树,需要从这个环上的某一条原主干公路中删除一条。
这个操作称为一次环替换。
通过若干次这样的操作,政府可以把当前主干道路网络变成任意另一张主干道路网络。显然,从一张主干道路网络变成另一张,方式不止一种。由于政府追求“最经济”的改造方案,因此它们只关心所需的最少环替换次数。这被称为从一张主干道路网络变成另一张的转换代价。
不过,政府这次的目标不是最省,而是“焕然一新”。它们希望选出的新主干道路网络,使得它相对于当前主干道路网络的转换代价在所有可能选择中尽可能大。
你的任务是:给定当前图及当前主干道路网络,求出把它变为“最昂贵”的另一张主干道路网络时,所需的最大可能转换代价。
不幸的是,政府已经提前拟定了一部分包含 Q 次环替换的计划,但这个计划还没有最终确定。因此它们还要求你在每一次计划中的环替换执行后,重新给出:
- 若从最初状态开始,已经执行了这些计划中的环替换直到当前这一步,
- 那么当前主干道路网络到某张“最昂贵”主干道路网络的最大转换代价是多少。
输入格式
第一行输入两个整数 N 和 M,表示城市数和双向高速公路数。
接下来 M 行,每行两个整数 x 和 y,表示一条连接城市 x 和 y 的高速公路。
接下来一行有 N-1 个整数,表示当前主干道路网络中各条边的编号。边的编号按输入顺序从 1 开始。
接下来一行输入一个整数 Q,表示计划执行的环替换次数。
接下来 Q 行,每行两个整数 i 和 j,表示执行一次合法的环替换:
- 加入编号为
i的边作为新的主干公路; - 删除当前主干道路网络中编号为
j的边。
保证这些操作始终构成合法的环替换。
输出格式
第一行输出:初始主干道路网络到某张“最昂贵”主干道路网络的最大转换代价。
接下来 Q 行依次输出:在执行对应的环替换后,当前主干道路网络到某张“最昂贵”主干道路网络的最大转换代价。
限制
2 ≤ N ≤ 10^41 ≤ M ≤ 5 × 10^40 ≤ Q ≤ 10^5
子任务
| 子任务 | 分值 | N 范围 |
M 范围 |
Q 范围 |
其他限制 |
|---|---|---|---|---|---|
| 1 | 0 | — | — | — | 样例测试 |
| 2 | 11 | N ≥ 4 |
Q = 0 |
任意两座城市之间都有直接公路 | |
| 3 | 20 | N ≤ 2 × 10^3 |
M ≤ 1.5 × 10^4 |
— | |
| 4 | 30 | N ≤ 10^4 |
M ≤ 5 × 10^4 |
||
| 5 | 39 | Q ≤ 10^5 |
只有通过某个子任务中的全部测试,才能获得该子任务的分数。
样例
输入
5 8
1 2
1 3
1 4
2 3
2 4
3 4
3 5
4 5
1 2 6 7
2
3 6
8 3
输出
4
3
3
样例说明
原题样例配有一张示意图,展示了公路网络及其中当前主干道路网络所对应的红色边。
图片说明: 此处应插入原题样例配图。图中红色边表示当前主干道路网络。
最昂贵的新主干道路网络由边 (1,4)、(2,3)、(2,4) 和 (4,5) 组成。
它可以通过以下 4 次环替换得到:
(1,4) → (1,3)(2,3) → (1,2)(2,4) → (3,4)(4,5) → (3,5)
这里每次替换中的第一条边表示新加入的边,第二条边表示被删除的边。
不能用更少的替换完成,因此其转换代价为 4。同时,也不存在代价更大的新主干道路网络。
题目中给出的两次计划环替换,按同样记法分别是:
(1,4) → (3,4)(4,5) → (1,4)