#P16670. [CSPro 30] 电力网络

    ID: 18755 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>动态规划 DP2023树形 DP基环树CSPro

[CSPro 30] 电力网络

背景

洛谷的测试数据仅供民间交流使用,非官方测试数据。官方评测链接:https://www.cspro.org/

题目描述

西西艾弗岛电力公司需要修建一套电网对岛上的众多城镇进行供电。电网设施包括建造在城镇中的变电站,与建造在城镇间的输电线路。根据前期的考察结果,电力公司已经确定了哪些城镇之间需要建造输电线路,以使得所有城镇能够被连接成一个电力网络。每座城镇只需要建造一个变电站,却都向电力公司提供了多个建造候选地址。对于每个城镇,不同候选地址的变电站造价不同;对于城镇间的输电线路,其造价也会随着两端变电站的候选地址的变化而变化。因此,电力公司想要知道,在所有候选地址的组合中,电网的总造价(变电站造价加上输电线路造价)最低是多少。

输入格式

从标准输入读入数据。

输入的第一行包括三个正整数 NNMMKK。表示一共有 NN 座城镇,需要建造 MM 条输电线路,每座城镇都提供了 KK 个变电站候选地址。

接下来输入 NN 行,每行表示一个城镇。每行包含 KK 个整数,表示该城镇不同候选地址的变电站造价。

接下来 MM 行,每行表示一条输电线路,包含 K2+2K^2 + 2 个整数。前两个整数表示该输电线路两端的城镇,范围是 [0,N)[0, N)。第三个整数开始是大小为 K×KK \times K 的矩阵 TT 的行主序存储形式。TijT_{ij} 表示当输电线路的第一个端点选择候选地址 ii,第二个端点选择候选地址 jj 时的线路造价。

输出格式

输出到标准输出。

输出包含一行,这一行有一个整数,表示电网的最低总造价。

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

提示

样例解释

城镇 00 与城镇 11 均选择了 00 号地址建造变电站。

子任务

对于全部数据,保证由城镇与输电线路构成的图是无向无重边无自环的连通图,保证单个变电站与单条线路的造价均不超过 10001000

  • 对于 20%20\% 的数据,保证 N6,K10N \le 6, K \le 10
  • 对于另外 20%20\% 的数据,保证 N104,K10,M=N1N \le 10^4, K \le 10, M = N - 1
  • 对于另外 20%20\% 的数据,保证 N104,K10,M=NN \le 10^4, K \le 10, M = N
  • 对于另外 20%20\% 的数据,保证 N104,K10N \le 10^4, K \le 10。图中存在两个节点 SDS、D,保证全图去除 DD 节点和与 DD 节点相连的边后,可以构成以 SS 节点为根的一棵树,而且所有与 DD 相连的节点都属于这棵树的叶子节点。
  • 对于最后 20%20\% 的数据,保证 N104,K10N \le 10^4, K \le 10,且度数大于 22 的节点数量 6\le 6