#2176. [csp 2016] 网络连接

[csp 2016] 网络连接

当前没有测试数据。

题目描述

    某校新建的大楼中有n台设备,学校需要利用这些设备搭建一个网络。我们用1到n的整数给这些设备编号。

    这些设备之间一共可以建立m条连线,建立每条连线会消耗一定的费用。连接建立后两台设备就可以相互通信了。两台设备可以借助其他设备进行通信,即通信关系可传递:如果设备A和设备B都能与设备C相互通信,那么设备A和设备B也能相互通信。

    由于大楼的拓扑结构所限,可以建立连线的两台设备,一定满足其编号之差的绝对值不超过p。

    这n台设备中的一部分属于用户设备。学校要求在最终的网络中,用户设备必须两两能够相互通信,其他设备则可以根据需要选择连线或不连线。

    现在问要达到学校的要求最少要消耗多少的费用。

输入格式

    输入的第一行包含一个正整数T,表示数据的组数,保证T=5。接下来依次描述每组数据。

    每组数据的第一行包含3个正整数n, m, p,表示设备的总数,可以建立的连线数量和拓扑结构的参数。

    第二行包含一个长度为n的01字符串,依次表示这n台设备是否为用户设备;为1表示是,为0表示不是。相邻字符之间无空格隔开,保证不会出现除了0和1之外的字符。保证至少有2个设备是用户设备。

    接下来m行,每行包含3个非负整数u, v, w,表示设备u和设备v可以消耗w的费用建立连线。其中0 < u < v ≤ n,v – u ≤ p,w ≤ 106。

    除第二行外,所有的数之间用一个空格隔开。

    保证两台设备之间最多只有一条可以建立的连线,保证至少存在一种方案能够满足学校的要求。

输出格式

对于每组数据,输出一行一个整数,表示能达到要求所需的最少费用。

样例

1
20 11 6
10000100001100000000
1 6 300
1 3 100
3 6 100
4 10 100
4 6 100
6 10 400
10 15 100
11 15 100
10 11 500
12 15 100
15 20 100
700

解释#1

用户设备分别是1、6、11、12。最优的方案需要选择以下连线:设备1和3,费用100;设备3和6,费用100;设备4和6,费用100;设备4和10,费用100;设备10和15,费用100;设备11和15,费用100;设备12和15,费用100。共计700。

子任务

每个测试点的每组数据分别都满足以下限制(其中c表示用户设备总数):

编号 n p c
1 =500 =6 =n
2 =2
3 =4
4 =6
5 =10
6 =2 无限制
7
8 =3
9 =6
10