最佳路线
_
题目
-
1
-
2014-06-03
问题描述
塞内加尔是非洲的一个小国家,就是这个人口不足
900
万、全国仅有
2
个标准足球场地的小国,在
2002
韩日世界杯的非洲区预选赛中脱颖而出,取得了世界杯决赛圈的入场券。
在塞内加尔全国球迷欣喜若狂的同时,
塞内加尔足协却发现自己面临着一个颇为尴尬的问题——由于打非洲
区预选赛时四处征战,加上足协经营不力,现在足协的预算以几近赤字。也就是说,塞内加尔足协支付不起从本
国乘飞机到达韩国参加世界杯的费用
!
经过三思,
塞内加尔足协向非洲足联递交了一份
《关于减免球队旅行费用》
的申请。可是,非洲足联也是惨淡经营,幸好非洲足联秘书长神通广大,弄来了
m
张优惠乘机券:每张优惠券
可以作用于一条航线,使全队通过此航线的费用减半;多张优惠券用于同一条线路,其效果叠加。例如在一条航
线上用三张优惠券,其费用降为原费用的
1/8
。
塞内加尔足球队要从塞内加尔国家机场出发,
途经一些中转机场,
最后要到达韩国釜山机场。
为了合理地分
配优惠券,使得所需费用最少,塞内加尔足协找到了你,请你编程解决这个问题。
输入文件
第
1
行有两个数
n,m(
80
0
n
,
20
0
m
)
并用空格隔开,
分别表示包括从起点
(
塞内加尔国家机场
)
到
终点
(
韩国釜山机场
)
的机场数,以及塞内加尔足协现有的优惠券数量。
从第
2
行到第
n+1
行,每行有
n
个数,其中第
i+1
行的第
j
个数代表从机场
i
到机场
j
所需费用;为零的
数代表两机场无航线。
假设起点标号为
1
,终点标号为
n
。
输出文件
第
1
行仅有一个数
(
保留两位小数
)
,代表所求得的从机场
1
到机场
n
的最小费用;
第
2
行打印航线,每两个机场间用
"->"
连接
(
参见样例输出
)
;
输入数据保证从塞内加尔机场可达釜山机场。
输入输出样例
bestline.in
5 2
0 0 80 96 0
70 0 72 54 0
18 0 0 99 82
72 18 71 0 0
69 0 0 70 0
bestline.out
81.00
1->3->5