一个贪婪算法的应用

计算机网络要求网络中的计算机被连接起来。本问题考虑一个“线性”的网络,在这一网络中计算机被连接到一起,并且除了首尾的两台计算机只分别连接着一台计算机外,其他任意一台计算机恰连接着两台计算机。图1中用黑点表示计算机,它们的位置用直角坐标表示(相对于一个在图中未画出的坐标系)。网络中连接的计算机之间的距离单位为英尺。 由于很多原因。我们希望使用的电缆长度应尽可能地短,你的问题是去决定计算机应如何被连接以使你所用的电缆长度最短。在设计方案施工时,电缆将埋在地下,因此连接两台计算机所要用的电缆总长度等于计算机之间的距离加上额外的16英尺电缆,以从地下连接到计算机,并为施工留一些余量。 1.输入 输入文件由数据项的序列组成,每个数据项的第一行为网络中的计算机总数。每个网络包括的计算机台数至少为2,至多为8。如果给出的计算机的数量为0,则意味着输入的结束。在每个数据项的初始行指出了网络中的计算机总数之后,数据项的随后各行将给出网络中各台计算机的坐标。坐标值是0到150之间的整数。没有两台计算机在相同坐标位置并且一台计算机只被给出一次坐标。 2.输出 每个网络的输出结果的第一行为该网络的编号(根据其在输入数据中的位置先后决定),以下各行每行表示一根连接两台计算机的电缆。最后一行应当用一个句子给出使用电缆的总长度。在给出每根电缆的长度时,将网络从一台计算机连接到另一台计算机(从哪一端开始无关紧要)。使用与样例输出相似的格式,用一个打满星号的行隔开不同的网络,距离以英尺为单位,打印时保留二位小数。 3.样例输入 6 5 19 55 28 38 101 28 62 111 84 43 116 5 11 27 84 99 142 81 88 30 95 38 3 132 73 49 86 72 111 0 4.样例输出 ************************************************************* Network # 1 Cable requirement to connect (5,19) to (55,28) is 66.80feet. Cable requirement to connect (55,28)to (28,62) is 59.42feet. Cable requirement to connect (28,62)to (38,101) is 56.26feet. Cable requirement to connect (38 ,101)to (43,116) is 31.81feet. Cable requirement to connect (43,116)to (111,84) is 91.15feet. Number of feet of cable required is 305,45. ************************************************************* Network # 2 Cable requirement to connect (11,27) to (88,30) is 93.06feet. Cable requirement to connect (88,30) to (95,38) is 26.63feet. Cable requirement to connect (95,38) to (84,99) is 77.98feet. Cable requirement to connect (84,99) to (142,81) is 76.73feet. Number of feet of cable requered is 274.40. ************************************************************* Network # 3 Cable requirement to connect (132,73) to (72,111) is 87.02feet. Cable requirement to connect (72,111) to (49,86) is 49.97feet. Number of feet of cable required is 136.99.. 写的代码

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值