2013年算法组题目2

来源:互联网 发布:15年广东省的经济数据 编辑:程序博客网 时间:2024/05/01 11:13

高效网络

 

       华工微软技术俱乐部是华南理工大学的优秀学生俱乐部,俱乐部里聚集了一群酷爱钻研的热爱思考的年轻人。最近俱乐部希望改良华南理工的校园网系统,希望以学生宿舍校园网络为基础搭建一个简单高效的校园宿舍专用网络。这个网络利用现有的闲置网线(已经搭建在宿舍建筑体内),以及现有机房闲置的交换机(在机房内部,可以连接闲置网线),将这些交换机搭建成一个联通的网络。

       会员们对此提议非常支持,经过俱乐部会员们细心调研以及多天的考察实地检测,他们罗列出来了整个华南理工大学宿舍全部闲置交换机,上面一共有N台交换机(方便起见,我们将他们编号为1N的整数)。清单上的交换机非常多,因此需要一个有效地方案将它们联通起来。此外还实地检测了每一条闲置网线的最大传输速率。

       聪明的俱乐部会员们设计了一张拓扑图,为了保证整个网络架构的简洁以及省钱,以及在后期建设可以接入最多的学生个人电脑,所以会员们制定了一个原则:为了保证N个交换机互相连通,只要让(N-1)对交换机互相连接即可。




    

       显然,在实际情况下,闲置的交换机和闲置的网线是由多种多样的,在拓扑图当中需要标明哪两台交换机是可以通过闲置网线连接的。对于每一对可以直接连接的交换机还需要标明他们之间的网线的最大传输速率。

       为了让整个网络的传输效率最大,会员们决定要尽量最大化整个网络效率值:所谓网络效率值,即每一对直接连通的交换机之间的网线传输速度之和。如图1所示,加粗的边表示了一个让传输速度最大的网络,其传输速度为5+6+10+5=26

       但是,如果让每个交换机都与非常多交换机连接,那么这样必然会使该交换机负载加重,降低其工作效率。并且每台交换机还需要留出额外的端口用于接入学生个人电脑。因此会员们为根据路由器型号,为每台路由器设定了最大可使用端口,表示在整个网络中,最多只有个交换机和i交换机直接联系。

       还是用上图的例子,如果我们为15每个点添加了=1,1,4,2,2的闲置,那么上述方案就要进行修改,这时最优的方案就如下图所示:其网络效率值为3+6+10+5=24

 

 

你能帮助会员们继续优化这个网络吗?


Input

输入文件network1.innetwork10.in将随试题发布。输入文件

每个输入文件的第一行是两个整数XYX表示网络中交换机的总数,Y表示所有闲置网线的个数。输入文件第二行包含X个整数,每个整数取值范围为[1,Y-1],用来描述k1,k2,k3,k4……Kn

接着的Y行表示任何两个可以通过闲置网线连通的交换机,格式为AiBiSi。表示AiBi可以使用速度为Si的网线连接。

 

Output

输出结果为network1.outnetwork10.out的文件。

每个文件第一行为一个整数,表示计算出来的最大网络效率值。

接下来的(N-1)行,每行一个数Mi,表示在网络中,让输入文件中的第(Mi+2)行描述的一对交换机使用网线进行连接。

 

 

Example

【输入】

 

5 6

1 1 4 2 2

1 2 5

1 3 3

2 3 6

2 5 3

3 4 10

4 5 5

 

【输出】

24

2

3

5

6



0 0
原创粉丝点击