#P16917. [Ontak2025]克拉科夫地铁

[Ontak2025]克拉科夫地铁

题目描述

计划建设一张由 nn 个地铁站和 mm 条候选隧道组成的网络。每条隧道连接两个站,并有一个整数建设费用。

最终只会建设部分隧道。由于政策限制,只允许建设费用位于区间 [L,H][L,H] 内的隧道。

对于给定的 L,HL,H,需要从所有允许的隧道中选择一组进行建设,并按以下优先级优化:

  1. 首先,使能够互相连通的车站对数量最大
  2. 在满足第一条的所有方案中,使建设总费用最小。

如果允许的边能够使整个图连通,那么这等价于求允许边子图的最小生成树;若不能连通,则需要得到使各连通块内部尽可能连通、且总费用最小的最优生成森林。

你需要回答很多组不同的 [L,H][L,H]

输入格式

第一行三个整数 n,m,fn,m,f

  • 2n200002\le n\le20000
  • 1m1000001\le m\le100000
  • f{0,1}f\in\{0,1\},表示查询是否经过在线编码。

接下来 mm 行,每行三个整数 x,y,wx,y,w,表示一条连接 x,yx,y 的候选隧道,费用为 ww

  • 1xyn1\le x\ne y\le n
  • 1w1061\le w\le10^6

允许多条隧道连接同一对车站。

接下来一行一个整数 qq1q1061\le q\le10^6

之后 qq 行给出查询。

f=0f=0

每行直接给出 Li,HiL_i,H_i

f=1f=1

输入中给出的不是实际的 (Li,Hi)(L_i,H_i),而是:

(Li+Ai1, Hi+Ai1)(L_i+A_{i-1},\ H_i+A_{i-1})

其中 Ai1A_{i-1} 是上一次查询的答案,且 A0=0A_0=0

解码后的查询保证满足 1LiHi1061\le L_i\le H_i\le10^6

输出格式

对于每个查询输出一行,表示满足上述优化目标时的最小总建设费用。

样例 1

5 7 0
1 2 2
2 3 4
3 4 3
4 5 1
5 1 3
2 5 4
1 4 5
5
1 2
1 4
2 3
3 5
4 5
3
9
8
14
13

样例 2

5 7 1
1 2 2
2 3 4
3 4 3
4 5 1
5 1 3
2 5 4
1 4 5
5
1 2
4 7
11 12
11 13
18 19
3
9
8
14
13

两个样例表示同一串真实查询,第二个样例使用上一问答案进行了编码。

子任务

WW 为该子任务中出现的最大边权。

子任务 额外限制 分值
1 n100,m500,q1000,W100,f=0n\le100,m\le500,q\le1000,W\le100,f=0 12
2 n1000,m105,q106,W106,f=0n\le1000,m\le10^5,q\le10^6,W\le10^6,f=0 16
3 n20000,m105,q106,W105,f=0n\le20000,m\le10^5,q\le10^6,W\le10^5,f=0 8
4 n1000,m105,q106,W106,f=1n\le1000,m\le10^5,q\le10^6,W\le10^6,f=1 44
5 n20000,m105,q106,W105,f=1n\le20000,m\le10^5,q\le10^6,W\le10^5,f=1 20