#P6918. [ICPC 2016 WF] Branch Assignment

[ICPC 2016 WF] Branch Assignment

Description

创新消费品公司(ICPC)计划启动一个绝密项目。该项目由 ss 个子项目组成。将有 bsb \ge s 个 ICPC 的分支机构参与此项目,ICPC 希望将每个分支机构分配给一个子项目。换句话说,这些分支机构将形成 ss 个不相交的组,每个组负责一个子项目。

每个月底,每个分支机构将向其组内的每个其他分支机构发送一条消息(每个分支机构接收不同的消息)。ICPC 有一个特定的通信协议。每个分支机构 ii 有一个只有该分支机构和 ICPC 总部知道的密钥 kik_i。假设分支机构 ii 想要向分支机构 jj 发送消息。分支机构 ii 用其密钥 kik_i 加密消息。一个可信的信使从该分支机构取走消息并将其交付给 ICPC 总部。总部用密钥 kik_i 解密消息,并用密钥 kjk_j 重新加密。然后信使将这个新加密的消息交付给分支机构 jj,分支机构 jj 用其自己的密钥 kjk_j 解密。出于安全原因,信使一次只能携带一条消息。

给定一个道路网络以及分支机构和总部在此网络中的位置,你的任务是确定信使在所有可能的分支机构到子项目的分配中,传递所有月底消息所需的最小总距离。

Input Format

输入的第一行包含四个整数 nnbbssrr,其中 nn (2n50002 \le n \le 5\, 000) 是交叉路口的数量,bb (1bn11 \le b \le n-1) 是分支机构的数量,ss (1sb1 \le s \le b) 是子项目的数量,rr (1r500001 \le r \le 50\, 000) 是道路的数量。交叉路口编号从 11nn。分支机构位于交叉路口 11bb,总部位于交叉路口 b+1b + 1。接下来的 rr 行中的每一行包含三个整数 uuvv\ell,表示从交叉路口 uu 到不同交叉路口 vv (1u,vn1 \leq u,v \leq n) 的一条单向道路,长度为 \ell (0100000 \leq \ell \leq 10\, 000)。没有有序对 (u,v)(u,v) 会出现多次,并且从任何交叉路口都可以到达每个其他交叉路口。

Output Format

输出信使需要行驶的最小总距离。

5 4 2 10
5 2 1
2 5 1
3 5 5
4 5 0
1 5 1
2 3 1
3 2 5
2 4 5
2 1 1
3 4 2

13

5 4 2 10
5 2 1
2 5 1
3 5 5
4 5 10
1 5 1
2 3 1
3 2 5
2 4 5
2 1 1
3 4 2

24

Hint

时间限制:2000 毫秒,内存限制:1048576 kB。

国际大学生程序设计竞赛(ACM-ICPC)世界总决赛 2016。

题面翻译由 ChatGPT-4o 提供。